;--- include file created by h2incx v0.99.2, copyright 2005 japheth
;--- source file: d:\ddraw\include\DINPUT.H, last modified: 9/27/2004 11:29
ifndef __DINPUT_INCLUDED__
__DINPUT_INCLUDED__	EQU	<>
ifndef DIJ_RINGZERO
ifdef _WIN32
COM_NO_WINDOWS_H	EQU	<>
	include objbase.inc
endif 
endif 
ifdef __cplusplus
;extern "C"
;{
endif 
DIRECTINPUT_HEADER_VERSION	EQU	0800h
ifndef DIRECTINPUT_VERSION
DIRECTINPUT_VERSION	EQU	<DIRECTINPUT_HEADER_VERSION>
;#pragma message ( __FILE__ ": DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800" ) 
endif 
ifndef DIJ_RINGZERO
DEFINE_GUID( CLSID_DirectInput , 25E609E0h , 0B259h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( CLSID_DirectInputDevice , 25E609E1h , 0B259h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( CLSID_DirectInput8 , 25E609E4h , 0B259h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( CLSID_DirectInputDevice8 , 25E609E5h , 0B259h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( IID_IDirectInputA , 89521360h , 0AA8Ah , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( IID_IDirectInputW , 89521361h , 0AA8Ah , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( IID_IDirectInput2A , 5944E662h , 0AA8Ah , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( IID_IDirectInput2W , 5944E663h , 0AA8Ah , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( IID_IDirectInput7A , 9A4CB684h , 236Dh , 11D3h , 8Eh , 9Dh , 00h , 0C0h , 4Fh , 68h , 44h , 0AEh)
DEFINE_GUID( IID_IDirectInput7W , 9A4CB685h , 236Dh , 11D3h , 8Eh , 9Dh , 00h , 0C0h , 4Fh , 68h , 44h , 0AEh)
DEFINE_GUID( IID_IDirectInput8A , 0BF798030h , 483Ah , 4DA2h , 0AAh , 99h , 5Dh , 64h , 0EDh , 36h , 97h , 00h)
DEFINE_GUID( IID_IDirectInput8W , 0BF798031h , 483Ah , 4DA2h , 0AAh , 99h , 5Dh , 64h , 0EDh , 36h , 97h , 00h)
DEFINE_GUID( IID_IDirectInputDeviceA , 5944E680h , 0C92Eh , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( IID_IDirectInputDeviceW , 5944E681h , 0C92Eh , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( IID_IDirectInputDevice2A , 5944E682h , 0C92Eh , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( IID_IDirectInputDevice2W , 5944E683h , 0C92Eh , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( IID_IDirectInputDevice7A , 57D7C6BCh , 2356h , 11D3h , 8Eh , 9Dh , 00h , 0C0h , 4Fh , 68h , 44h , 0AEh)
DEFINE_GUID( IID_IDirectInputDevice7W , 57D7C6BDh , 2356h , 11D3h , 8Eh , 9Dh , 00h , 0C0h , 4Fh , 68h , 44h , 0AEh)
DEFINE_GUID( IID_IDirectInputDevice8A , 54D41080h , 0DC15h , 4833h , 0A4h , 1Bh , 74h , 8Fh , 73h , 0A3h , 81h , 79h)
DEFINE_GUID( IID_IDirectInputDevice8W , 54D41081h , 0DC15h , 4833h , 0A4h , 1Bh , 74h , 8Fh , 73h , 0A3h , 81h , 79h)
DEFINE_GUID( IID_IDirectInputEffect , 0E7E1F7C0h , 88D2h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_XAxis , 0A36D02E0h , 0C9F3h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_YAxis , 0A36D02E1h , 0C9F3h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_ZAxis , 0A36D02E2h , 0C9F3h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_RxAxis , 0A36D02F4h , 0C9F3h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_RyAxis , 0A36D02F5h , 0C9F3h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_RzAxis , 0A36D02E3h , 0C9F3h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_Slider , 0A36D02E4h , 0C9F3h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_Button , 0A36D02F0h , 0C9F3h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_Key , 55728220h , 0D33Ch , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_POV , 0A36D02F2h , 0C9F3h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_Unknown , 0A36D02F3h , 0C9F3h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_SysMouse , 6F1D2B60h , 0D5A0h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_SysKeyboard , 6F1D2B61h , 0D5A0h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_Joystick , 6F1D2B70h , 0D5A0h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_SysMouseEm , 6F1D2B80h , 0D5A0h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_SysMouseEm2 , 6F1D2B81h , 0D5A0h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_SysKeyboardEm , 6F1D2B82h , 0D5A0h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_SysKeyboardEm2 , 6F1D2B83h , 0D5A0h , 11CFh , 0BFh , 0C7h , 44h , 45h , 53h , 54h , 00h , 00h)
DEFINE_GUID( GUID_ConstantForce , 13541C20h , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_RampForce , 13541C21h , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_Square , 13541C22h , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_Sine , 13541C23h , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_Triangle , 13541C24h , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_SawtoothUp , 13541C25h , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_SawtoothDown , 13541C26h , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_Spring , 13541C27h , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_Damper , 13541C28h , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_Inertia , 13541C29h , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_Friction , 13541C2Ah , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
DEFINE_GUID( GUID_CustomForce , 13541C2Bh , 8E33h , 11D0h , 9Ah , 0D0h , 00h , 0A0h , 0C9h , 0A0h , 6Eh , 35h)
endif 
if (DIRECTINPUT_VERSION ge 0500h)
DIEFT_ALL	EQU	00000000h
DIEFT_CONSTANTFORCE	EQU	00000001h
DIEFT_RAMPFORCE	EQU	00000002h
DIEFT_PERIODIC	EQU	00000003h
DIEFT_CONDITION	EQU	00000004h
DIEFT_CUSTOMFORCE	EQU	00000005h
DIEFT_HARDWARE	EQU	000000FFh
DIEFT_FFATTACK	EQU	00000200h
DIEFT_FFFADE	EQU	00000400h
DIEFT_SATURATION	EQU	00000800h
DIEFT_POSNEGCOEFFICIENTS	EQU	00001000h
DIEFT_POSNEGSATURATION	EQU	00002000h
DIEFT_DEADBAND	EQU	00004000h
DIEFT_STARTDELAY	EQU	00008000h
DIEFT_GETTYPE macro n
	exitm <LOBYTE ( n ) >
	endm
DI_DEGREES	EQU	100
DI_FFNOMINALMAX	EQU	10000
DI_SECONDS	EQU	1000000
DICONSTANTFORCE	struct
lMagnitude	SDWORD	?
DICONSTANTFORCE	ends

LPDICONSTANTFORCE typedef ptr DICONSTANTFORCE

LPCDICONSTANTFORCE typedef ptr DICONSTANTFORCE
DIRAMPFORCE	struct
lStart	SDWORD	?
lEnd	SDWORD	?
DIRAMPFORCE	ends

LPDIRAMPFORCE typedef ptr DIRAMPFORCE

LPCDIRAMPFORCE typedef ptr DIRAMPFORCE
DIPERIODIC	struct
dwMagnitude	DWORD	?
lOffset	SDWORD	?
dwPhase	DWORD	?
dwPeriod	DWORD	?
DIPERIODIC	ends

LPDIPERIODIC typedef ptr DIPERIODIC

LPCDIPERIODIC typedef ptr DIPERIODIC
DICONDITION	struct
lOffset	SDWORD	?
lPositiveCoefficient	SDWORD	?
lNegativeCoefficient	SDWORD	?
dwPositiveSaturation	DWORD	?
dwNegativeSaturation	DWORD	?
lDeadBand	SDWORD	?
DICONDITION	ends

LPDICONDITION typedef ptr DICONDITION

LPCDICONDITION typedef ptr DICONDITION
DICUSTOMFORCE	struct
cChannels	DWORD	?
dwSamplePeriod	DWORD	?
cSamples	DWORD	?
rglForceData	LPLONG	?
DICUSTOMFORCE	ends

LPDICUSTOMFORCE typedef ptr DICUSTOMFORCE

LPCDICUSTOMFORCE typedef ptr DICUSTOMFORCE
DIENVELOPE	struct
dwSize	DWORD	?
dwAttackLevel	DWORD	?
dwAttackTime	DWORD	?
dwFadeLevel	DWORD	?
dwFadeTime	DWORD	?
DIENVELOPE	ends

LPDIENVELOPE typedef ptr DIENVELOPE

LPCDIENVELOPE typedef ptr DIENVELOPE
DIEFFECT_DX5	struct
dwSize	DWORD	?
dwFlags	DWORD	?
dwDuration	DWORD	?
dwSamplePeriod	DWORD	?
dwGain	DWORD	?
dwTriggerButton	DWORD	?
dwTriggerRepeatInterval	DWORD	?
cAxes	DWORD	?
rgdwAxes	LPDWORD	?
rglDirection	LPLONG	?
lpEnvelope	LPDIENVELOPE	?
cbTypeSpecificParams	DWORD	?
lpvTypeSpecificParams	LPVOID	?
DIEFFECT_DX5	ends

LPDIEFFECT_DX5 typedef ptr DIEFFECT_DX5

LPCDIEFFECT_DX5 typedef ptr DIEFFECT_DX5
DIEFFECT	struct
dwSize	DWORD	?
dwFlags	DWORD	?
dwDuration	DWORD	?
dwSamplePeriod	DWORD	?
dwGain	DWORD	?
dwTriggerButton	DWORD	?
dwTriggerRepeatInterval	DWORD	?
cAxes	DWORD	?
rgdwAxes	LPDWORD	?
rglDirection	LPLONG	?
lpEnvelope	LPDIENVELOPE	?
cbTypeSpecificParams	DWORD	?
lpvTypeSpecificParams	LPVOID	?
if (DIRECTINPUT_VERSION ge 0600h)
dwStartDelay	DWORD	?
endif 
DIEFFECT	ends

LPDIEFFECT typedef ptr DIEFFECT

DIEFFECT_DX6 typedef DIEFFECT
LPDIEFFECT_DX6 typedef LPDIEFFECT
LPCDIEFFECT typedef ptr DIEFFECT
if (DIRECTINPUT_VERSION ge 0700h)
ifndef DIJ_RINGZERO
DIFILEEFFECT	struct
dwSize	DWORD	?
GuidEffect	GUID	<>
lpDiEffect	LPCDIEFFECT	?
szFriendlyName	CHAR MAX_PATH dup (?)
DIFILEEFFECT	ends

LPDIFILEEFFECT typedef ptr DIFILEEFFECT

LPCDIFILEEFFECT typedef ptr DIFILEEFFECT
proto_LPDIENUMEFFECTSINFILECALLBACK typedef proto stdcall :LPCDIFILEEFFECT,:LPVOID
LPDIENUMEFFECTSINFILECALLBACK typedef ptr proto_LPDIENUMEFFECTSINFILECALLBACK
endif 
endif 
DIEFF_OBJECTIDS	EQU	00000001h
DIEFF_OBJECTOFFSETS	EQU	00000002h
DIEFF_CARTESIAN	EQU	00000010h
DIEFF_POLAR	EQU	00000020h
DIEFF_SPHERICAL	EQU	00000040h
DIEP_DURATION	EQU	00000001h
DIEP_SAMPLEPERIOD	EQU	00000002h
DIEP_GAIN	EQU	00000004h
DIEP_TRIGGERBUTTON	EQU	00000008h
DIEP_TRIGGERREPEATINTERVAL	EQU	00000010h
DIEP_AXES	EQU	00000020h
DIEP_DIRECTION	EQU	00000040h
DIEP_ENVELOPE	EQU	00000080h
DIEP_TYPESPECIFICPARAMS	EQU	00000100h
if (DIRECTINPUT_VERSION ge 0600h)
DIEP_STARTDELAY	EQU	00000200h
DIEP_ALLPARAMS_DX5	EQU	000001FFh
DIEP_ALLPARAMS	EQU	000003FFh
else 
DIEP_ALLPARAMS	EQU	000001FFh
endif 
DIEP_START	EQU	20000000h
DIEP_NORESTART	EQU	40000000h
DIEP_NODOWNLOAD	EQU	80000000h
DIEB_NOTRIGGER	EQU	0FFFFFFFFh
DIES_SOLO	EQU	00000001h
DIES_NODOWNLOAD	EQU	80000000h
DIEGES_PLAYING	EQU	00000001h
DIEGES_EMULATED	EQU	00000002h
DIEFFESCAPE	struct
dwSize	DWORD	?
dwCommand	DWORD	?
lpvInBuffer	LPVOID	?
cbInBuffer	DWORD	?
lpvOutBuffer	LPVOID	?
cbOutBuffer	DWORD	?
DIEFFESCAPE	ends

LPDIEFFESCAPE typedef ptr DIEFFESCAPE

ifndef DIJ_RINGZERO
;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputEffect>
DECLARE_INTERFACE_( IDirectInputEffect , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  Initialize , :HINSTANCE, :DWORD, :REFGUID
STDMETHOD  GetEffectGuid , :LPGUID
STDMETHOD  GetParameters , :LPDIEFFECT, :DWORD
STDMETHOD  SetParameters , :LPCDIEFFECT, :DWORD
STDMETHOD  Start , :DWORD, :DWORD
STDMETHOD  Stop 
STDMETHOD  GetEffectStatus , :LPDWORD
STDMETHOD  Download 
STDMETHOD  Unload 
STDMETHOD  Escape_ , :LPDIEFFESCAPE
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTEFFECT typedef ptr IDirectInputEffect

if  NOT defined(__cplusplus) OR defined(CINTERFACE)
IDirectInputEffect_QueryInterface macro p,a,b
	exitm <vf(p, IDirectInputEffect, QueryInterface), a , b >
	endm
IDirectInputEffect_AddRef macro p
	exitm <vf(p, IDirectInputEffect, AddRef)>
	endm
IDirectInputEffect_Release macro p
	exitm <vf(p, IDirectInputEffect, Release)>
	endm
IDirectInputEffect_Initialize macro p,a,b,c
	exitm <vf(p, IDirectInputEffect, Initialize), a , b , c >
	endm
IDirectInputEffect_GetEffectGuid macro p,a
	exitm <vf(p, IDirectInputEffect, GetEffectGuid), a >
	endm
IDirectInputEffect_GetParameters macro p,a,b
	exitm <vf(p, IDirectInputEffect, GetParameters), a , b >
	endm
IDirectInputEffect_SetParameters macro p,a,b
	exitm <vf(p, IDirectInputEffect, SetParameters), a , b >
	endm
IDirectInputEffect_Start macro p,a,b
	exitm <vf(p, IDirectInputEffect, Start), a , b >
	endm
IDirectInputEffect_Stop macro p
	exitm <vf(p, IDirectInputEffect, Stop)>
	endm
IDirectInputEffect_GetEffectStatus macro p,a
	exitm <vf(p, IDirectInputEffect, GetEffectStatus), a >
	endm
IDirectInputEffect_Download macro p
	exitm <vf(p, IDirectInputEffect, Download)>
	endm
IDirectInputEffect_Unload macro p
	exitm <vf(p, IDirectInputEffect, Unload)>
	endm
IDirectInputEffect_Escape macro p,a
	exitm <vf(p, IDirectInputEffect, Escape_), a >
	endm
else 
IDirectInputEffect_QueryInterface macro p,a,b
	exitm <( p ) -> QueryInterface ( a , b ) >
	endm
IDirectInputEffect_AddRef macro p
	exitm <( p ) -> AddRef ( ) >
	endm
IDirectInputEffect_Release macro p
	exitm <( p ) -> Release ( ) >
	endm
IDirectInputEffect_Initialize macro p,a,b,c
	exitm <( p ) -> Initialize ( a , b , c ) >
	endm
IDirectInputEffect_GetEffectGuid macro p,a
	exitm <( p ) -> GetEffectGuid ( a ) >
	endm
IDirectInputEffect_GetParameters macro p,a,b
	exitm <( p ) -> GetParameters ( a , b ) >
	endm
IDirectInputEffect_SetParameters macro p,a,b
	exitm <( p ) -> SetParameters ( a , b ) >
	endm
IDirectInputEffect_Start macro p,a,b
	exitm <( p ) -> Start ( a , b ) >
	endm
IDirectInputEffect_Stop macro p
	exitm <( p ) -> Stop ( ) >
	endm
IDirectInputEffect_GetEffectStatus macro p,a
	exitm <( p ) -> GetEffectStatus ( a ) >
	endm
IDirectInputEffect_Download macro p
	exitm <( p ) -> Download ( ) >
	endm
IDirectInputEffect_Unload macro p
	exitm <( p ) -> Unload ( ) >
	endm
IDirectInputEffect_Escape macro p,a
	exitm <( p ) -> Escape ( a ) >
	endm
endif 
endif 
endif 
if DIRECTINPUT_VERSION le 700h
DIDEVTYPE_DEVICE	EQU	1
DIDEVTYPE_MOUSE	EQU	2
DIDEVTYPE_KEYBOARD	EQU	3
DIDEVTYPE_JOYSTICK	EQU	4
else 
DI8DEVCLASS_ALL	EQU	0
DI8DEVCLASS_DEVICE	EQU	1
DI8DEVCLASS_POINTER	EQU	2
DI8DEVCLASS_KEYBOARD	EQU	3
DI8DEVCLASS_GAMECTRL	EQU	4
DI8DEVTYPE_DEVICE	EQU	11h
DI8DEVTYPE_MOUSE	EQU	12h
DI8DEVTYPE_KEYBOARD	EQU	13h
DI8DEVTYPE_JOYSTICK	EQU	14h
DI8DEVTYPE_GAMEPAD	EQU	15h
DI8DEVTYPE_DRIVING	EQU	16h
DI8DEVTYPE_FLIGHT	EQU	17h
DI8DEVTYPE_1STPERSON	EQU	18h
DI8DEVTYPE_DEVICECTRL	EQU	19h
DI8DEVTYPE_SCREENPOINTER	EQU	1Ah
DI8DEVTYPE_REMOTE	EQU	1Bh
DI8DEVTYPE_SUPPLEMENTAL	EQU	1Ch
endif 
DIDEVTYPE_HID	EQU	00010000h
if DIRECTINPUT_VERSION le 700h
DIDEVTYPEMOUSE_UNKNOWN	EQU	1
DIDEVTYPEMOUSE_TRADITIONAL	EQU	2
DIDEVTYPEMOUSE_FINGERSTICK	EQU	3
DIDEVTYPEMOUSE_TOUCHPAD	EQU	4
DIDEVTYPEMOUSE_TRACKBALL	EQU	5
DIDEVTYPEKEYBOARD_UNKNOWN	EQU	0
DIDEVTYPEKEYBOARD_PCXT	EQU	1
DIDEVTYPEKEYBOARD_OLIVETTI	EQU	2
DIDEVTYPEKEYBOARD_PCAT	EQU	3
DIDEVTYPEKEYBOARD_PCENH	EQU	4
DIDEVTYPEKEYBOARD_NOKIA1050	EQU	5
DIDEVTYPEKEYBOARD_NOKIA9140	EQU	6
DIDEVTYPEKEYBOARD_NEC98	EQU	7
DIDEVTYPEKEYBOARD_NEC98LAPTOP	EQU	8
DIDEVTYPEKEYBOARD_NEC98106	EQU	9
DIDEVTYPEKEYBOARD_JAPAN106	EQU	10
DIDEVTYPEKEYBOARD_JAPANAX	EQU	11
DIDEVTYPEKEYBOARD_J3100	EQU	12
DIDEVTYPEJOYSTICK_UNKNOWN	EQU	1
DIDEVTYPEJOYSTICK_TRADITIONAL	EQU	2
DIDEVTYPEJOYSTICK_FLIGHTSTICK	EQU	3
DIDEVTYPEJOYSTICK_GAMEPAD	EQU	4
DIDEVTYPEJOYSTICK_RUDDER	EQU	5
DIDEVTYPEJOYSTICK_WHEEL	EQU	6
DIDEVTYPEJOYSTICK_HEADTRACKER	EQU	7
else 
DI8DEVTYPEMOUSE_UNKNOWN	EQU	1
DI8DEVTYPEMOUSE_TRADITIONAL	EQU	2
DI8DEVTYPEMOUSE_FINGERSTICK	EQU	3
DI8DEVTYPEMOUSE_TOUCHPAD	EQU	4
DI8DEVTYPEMOUSE_TRACKBALL	EQU	5
DI8DEVTYPEMOUSE_ABSOLUTE	EQU	6
DI8DEVTYPEKEYBOARD_UNKNOWN	EQU	0
DI8DEVTYPEKEYBOARD_PCXT	EQU	1
DI8DEVTYPEKEYBOARD_OLIVETTI	EQU	2
DI8DEVTYPEKEYBOARD_PCAT	EQU	3
DI8DEVTYPEKEYBOARD_PCENH	EQU	4
DI8DEVTYPEKEYBOARD_NOKIA1050	EQU	5
DI8DEVTYPEKEYBOARD_NOKIA9140	EQU	6
DI8DEVTYPEKEYBOARD_NEC98	EQU	7
DI8DEVTYPEKEYBOARD_NEC98LAPTOP	EQU	8
DI8DEVTYPEKEYBOARD_NEC98106	EQU	9
DI8DEVTYPEKEYBOARD_JAPAN106	EQU	10
DI8DEVTYPEKEYBOARD_JAPANAX	EQU	11
DI8DEVTYPEKEYBOARD_J3100	EQU	12
DI8DEVTYPE_LIMITEDGAMESUBTYPE	EQU	1
DI8DEVTYPEJOYSTICK_LIMITED	EQU	<DI8DEVTYPE_LIMITEDGAMESUBTYPE>
DI8DEVTYPEJOYSTICK_STANDARD	EQU	2
DI8DEVTYPEGAMEPAD_LIMITED	EQU	<DI8DEVTYPE_LIMITEDGAMESUBTYPE>
DI8DEVTYPEGAMEPAD_STANDARD	EQU	2
DI8DEVTYPEGAMEPAD_TILT	EQU	3
DI8DEVTYPEDRIVING_LIMITED	EQU	<DI8DEVTYPE_LIMITEDGAMESUBTYPE>
DI8DEVTYPEDRIVING_COMBINEDPEDALS	EQU	2
DI8DEVTYPEDRIVING_DUALPEDALS	EQU	3
DI8DEVTYPEDRIVING_THREEPEDALS	EQU	4
DI8DEVTYPEDRIVING_HANDHELD	EQU	5
DI8DEVTYPEFLIGHT_LIMITED	EQU	<DI8DEVTYPE_LIMITEDGAMESUBTYPE>
DI8DEVTYPEFLIGHT_STICK	EQU	2
DI8DEVTYPEFLIGHT_YOKE	EQU	3
DI8DEVTYPEFLIGHT_RC	EQU	4
DI8DEVTYPE1STPERSON_LIMITED	EQU	<DI8DEVTYPE_LIMITEDGAMESUBTYPE>
DI8DEVTYPE1STPERSON_UNKNOWN	EQU	2
DI8DEVTYPE1STPERSON_SIXDOF	EQU	3
DI8DEVTYPE1STPERSON_SHOOTER	EQU	4
DI8DEVTYPESCREENPTR_UNKNOWN	EQU	2
DI8DEVTYPESCREENPTR_LIGHTGUN	EQU	3
DI8DEVTYPESCREENPTR_LIGHTPEN	EQU	4
DI8DEVTYPESCREENPTR_TOUCH	EQU	5
DI8DEVTYPEREMOTE_UNKNOWN	EQU	2
DI8DEVTYPEDEVICECTRL_UNKNOWN	EQU	2
DI8DEVTYPEDEVICECTRL_COMMSSELECTION	EQU	3
DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED	EQU	4
DI8DEVTYPESUPPLEMENTAL_UNKNOWN	EQU	2
DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER	EQU	3
DI8DEVTYPESUPPLEMENTAL_HEADTRACKER	EQU	4
DI8DEVTYPESUPPLEMENTAL_HANDTRACKER	EQU	5
DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE	EQU	6
DI8DEVTYPESUPPLEMENTAL_SHIFTER	EQU	7
DI8DEVTYPESUPPLEMENTAL_THROTTLE	EQU	8
DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE	EQU	9
DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS	EQU	10
DI8DEVTYPESUPPLEMENTAL_DUALPEDALS	EQU	11
DI8DEVTYPESUPPLEMENTAL_THREEPEDALS	EQU	12
DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS	EQU	13
endif 
GET_DIDEVICE_TYPE macro dwDevType
	exitm <LOBYTE ( dwDevType ) >
	endm
GET_DIDEVICE_SUBTYPE macro dwDevType
	exitm <HIBYTE ( dwDevType ) >
	endm
if (DIRECTINPUT_VERSION ge 0500h)
DIDEVCAPS_DX3	struct
dwSize	DWORD	?
dwFlags	DWORD	?
dwDevType	DWORD	?
dwAxes	DWORD	?
dwButtons	DWORD	?
dwPOVs	DWORD	?
DIDEVCAPS_DX3	ends

LPDIDEVCAPS_DX3 typedef ptr DIDEVCAPS_DX3

endif 
DIDEVCAPS	struct
dwSize	DWORD	?
dwFlags	DWORD	?
dwDevType	DWORD	?
dwAxes	DWORD	?
dwButtons	DWORD	?
dwPOVs	DWORD	?
if (DIRECTINPUT_VERSION ge 0500h)
dwFFSamplePeriod	DWORD	?
dwFFMinTimeResolution	DWORD	?
dwFirmwareRevision	DWORD	?
dwHardwareRevision	DWORD	?
dwFFDriverVersion	DWORD	?
endif 
DIDEVCAPS	ends

LPDIDEVCAPS typedef ptr DIDEVCAPS

DIDC_ATTACHED	EQU	00000001h
DIDC_POLLEDDEVICE	EQU	00000002h
DIDC_EMULATED	EQU	00000004h
DIDC_POLLEDDATAFORMAT	EQU	00000008h
if (DIRECTINPUT_VERSION ge 0500h)
DIDC_FORCEFEEDBACK	EQU	00000100h
DIDC_FFATTACK	EQU	00000200h
DIDC_FFFADE	EQU	00000400h
DIDC_SATURATION	EQU	00000800h
DIDC_POSNEGCOEFFICIENTS	EQU	00001000h
DIDC_POSNEGSATURATION	EQU	00002000h
DIDC_DEADBAND	EQU	00004000h
endif 
DIDC_STARTDELAY	EQU	00008000h
if (DIRECTINPUT_VERSION ge 050ah)
DIDC_ALIAS	EQU	00010000h
DIDC_PHANTOM	EQU	00020000h
endif 
if (DIRECTINPUT_VERSION ge 0800h)
DIDC_HIDDEN	EQU	00040000h
endif 
DIDFT_ALL	EQU	00000000h
DIDFT_RELAXIS	EQU	00000001h
DIDFT_ABSAXIS	EQU	00000002h
DIDFT_AXIS	EQU	00000003h
DIDFT_PSHBUTTON	EQU	00000004h
DIDFT_TGLBUTTON	EQU	00000008h
DIDFT_BUTTON	EQU	0000000Ch
DIDFT_POV	EQU	00000010h
DIDFT_COLLECTION	EQU	00000040h
DIDFT_NODATA	EQU	00000080h
DIDFT_ANYINSTANCE	EQU	00FFFF00h
DIDFT_INSTANCEMASK	EQU	<DIDFT_ANYINSTANCE>
DIDFT_MAKEINSTANCE macro n
	exitm <( ( n )  shl  8 ) >
	endm
DIDFT_GETTYPE macro n
	exitm <LOBYTE ( n ) >
	endm
DIDFT_GETINSTANCE macro n
	exitm <LOWORD ( ( n )  shr  8 ) >
	endm
DIDFT_FFACTUATOR	EQU	01000000h
DIDFT_FFEFFECTTRIGGER	EQU	02000000h
if (DIRECTINPUT_VERSION ge 050ah)
DIDFT_OUTPUT	EQU	10000000h
DIDFT_VENDORDEFINED	EQU	04000000h
DIDFT_ALIAS	EQU	08000000h
endif 
ifndef DIDFT_OPTIONAL
DIDFT_OPTIONAL	EQU	80000000h
endif 
DIDFT_ENUMCOLLECTION macro n
	exitm <( ( n )  shl  8 ) >
	endm
DIDFT_NOCOLLECTION	EQU	00FFFF00h
ifndef DIJ_RINGZERO
DIOBJECTDATAFORMAT	struct
pguid	DWORD	?
dwOfs	DWORD	?
dwType	DWORD	?
dwFlags	DWORD	?
DIOBJECTDATAFORMAT	ends

LPDIOBJECTDATAFORMAT typedef ptr DIOBJECTDATAFORMAT

LPCDIOBJECTDATAFORMAT typedef ptr DIOBJECTDATAFORMAT
DIDATAFORMAT	struct
dwSize	DWORD	?
dwObjSize	DWORD	?
dwFlags	DWORD	?
dwDataSize	DWORD	?
dwNumObjs	DWORD	?
rgodf	LPDIOBJECTDATAFORMAT	?
DIDATAFORMAT	ends

LPDIDATAFORMAT typedef ptr DIDATAFORMAT

LPCDIDATAFORMAT typedef ptr DIDATAFORMAT
DIDF_ABSAXIS	EQU	00000001h
DIDF_RELAXIS	EQU	00000002h
ifdef __cplusplus
;extern "C"
;{
endif 
externdef c_dfDIMouse: DIDATAFORMAT
if (DIRECTINPUT_VERSION ge 0700h)
externdef c_dfDIMouse2: DIDATAFORMAT
endif 
externdef c_dfDIKeyboard: DIDATAFORMAT
if (DIRECTINPUT_VERSION ge 0500h)
externdef c_dfDIJoystick: DIDATAFORMAT
externdef c_dfDIJoystick2: DIDATAFORMAT
endif 
ifdef __cplusplus
;}
endif 
if DIRECTINPUT_VERSION gt 0700h

DIACTIONA	struct
uAppData	UINT_PTR	?
dwSemantic	DWORD	?
dwFlags	DWORD	?
union
lptszActionName	LPSTR	?
uResIdString	DWORD	?
ends
guidInstance	GUID	<>
dwObjID	DWORD	?
dwHow	DWORD	?
DIACTIONA	ends

LPDIACTIONA typedef ptr DIACTIONA

DIACTIONW	struct
uAppData	UINT_PTR	?
dwSemantic	DWORD	?
dwFlags	DWORD	?
union
lptszActionName	LPWSTR	?
uResIdString	DWORD	?
ends
guidInstance	GUID	<>
dwObjID	DWORD	?
dwHow	DWORD	?
DIACTIONW	ends

LPDIACTIONW typedef ptr DIACTIONW

ifdef UNICODE
DIACTION typedef DIACTIONW
LPDIACTION typedef LPDIACTIONW
else 
DIACTION typedef DIACTIONA
LPDIACTION typedef LPDIACTIONA
endif 

LPCDIACTIONA typedef ptr DIACTIONA
LPCDIACTIONW typedef ptr DIACTIONW

ifdef UNICODE
DIACTION typedef DIACTIONW
LPCDIACTION typedef LPCDIACTIONW
else
DIACTION typedef DIACTIONA
LPCDIACTION typedef LPCDIACTIONA
endif
LPCDIACTION typedef ptr DIACTION

DIA_FORCEFEEDBACK	EQU	00000001h
DIA_APPMAPPED	EQU	00000002h
DIA_APPNOMAP	EQU	00000004h
DIA_NORANGE	EQU	00000008h
DIA_APPFIXED	EQU	00000010h
DIAH_UNMAPPED	EQU	00000000h
DIAH_USERCONFIG	EQU	00000001h
DIAH_APPREQUESTED	EQU	00000002h
DIAH_HWAPP	EQU	00000004h
DIAH_HWDEFAULT	EQU	00000008h
DIAH_DEFAULT	EQU	00000020h
DIAH_ERROR	EQU	80000000h
DIACTIONFORMATA	struct
dwSize	DWORD	?
dwActionSize	DWORD	?
dwDataSize	DWORD	?
dwNumActions	DWORD	?
rgoAction	LPDIACTIONA	?
guidActionMap	GUID	<>
dwGenre	DWORD	?
dwBufferSize	DWORD	?
lAxisMin	SDWORD	?
lAxisMax	SDWORD	?
hInstString	HINSTANCE	?
ftTimeStamp	FILETIME	<>
dwCRC	DWORD	?
tszActionMap	CHAR MAX_PATH dup (?)
DIACTIONFORMATA	ends

LPDIACTIONFORMATA typedef ptr DIACTIONFORMATA

DIACTIONFORMATW	struct
dwSize	DWORD	?
dwActionSize	DWORD	?
dwDataSize	DWORD	?
dwNumActions	DWORD	?
rgoAction	LPDIACTIONW	?
guidActionMap	GUID	<>
dwGenre	DWORD	?
dwBufferSize	DWORD	?
lAxisMin	SDWORD	?
lAxisMax	SDWORD	?
hInstString	HINSTANCE	?
ftTimeStamp	FILETIME	<>
dwCRC	DWORD	?
tszActionMap	WCHAR MAX_PATH dup (?)
DIACTIONFORMATW	ends

LPDIACTIONFORMATW typedef ptr DIACTIONFORMATW

ifdef UNICODE
DIACTIONFORMAT typedef DIACTIONFORMATW
LPDIACTIONFORMAT typedef LPDIACTIONFORMATW
else
DIACTIONFORMAT typedef DIACTIONFORMATA
LPDIACTIONFORMAT typedef LPDIACTIONFORMATA
endif

LPCDIACTIONFORMATA typedef ptr DIACTIONFORMATA
LPCDIACTIONFORMATW typedef ptr DIACTIONFORMATW

ifdef UNICODE
DIACTIONFORMAT typedef DIACTIONFORMATW
LPCDIACTIONFORMAT typedef LPCDIACTIONFORMATW
else
DIACTIONFORMAT typedef DIACTIONFORMATA
LPCDIACTIONFORMAT typedef LPCDIACTIONFORMATA
endif
LPCDIACTIONFORMAT typedef ptr DIACTIONFORMAT

DIAFTS_NEWDEVICELOW	EQU	0FFFFFFFFh
DIAFTS_NEWDEVICEHIGH	EQU	0FFFFFFFFh
DIAFTS_UNUSEDDEVICELOW	EQU	00000000h
DIAFTS_UNUSEDDEVICEHIGH	EQU	00000000h
DIDBAM_DEFAULT	EQU	00000000h
DIDBAM_PRESERVE	EQU	00000001h
DIDBAM_INITIALIZE	EQU	00000002h
DIDBAM_HWDEFAULTS	EQU	00000004h
DIDSAM_DEFAULT	EQU	00000000h
DIDSAM_NOUSER	EQU	00000001h
DIDSAM_FORCESAVE	EQU	00000002h
DICD_DEFAULT	EQU	00000000h
DICD_EDIT	EQU	00000001h
ifndef D3DCOLOR_DEFINED
D3DCOLOR typedef DWORD
D3DCOLOR_DEFINED	EQU	<>
endif 
DICOLORSET	struct
dwSize	DWORD	?
cTextFore	D3DCOLOR	?
cTextHighlight	D3DCOLOR	?
cCalloutLine	D3DCOLOR	?
cCalloutHighlight	D3DCOLOR	?
cBorder	D3DCOLOR	?
cControlFill	D3DCOLOR	?
cHighlightFill	D3DCOLOR	?
cAreaFill	D3DCOLOR	?
DICOLORSET	ends

LPDICOLORSET typedef ptr DICOLORSET

LPCDICOLORSET typedef ptr DICOLORSET
DICONFIGUREDEVICESPARAMSA	struct
dwSize	DWORD	?
dwcUsers	DWORD	?
lptszUserNames	LPSTR	?
dwcFormats	DWORD	?
lprgFormats	LPDIACTIONFORMATA	?
hwnd	HWND	?
dics	DICOLORSET	<>
lpUnkDDSTarget	DWORD	?
DICONFIGUREDEVICESPARAMSA	ends

LPDICONFIGUREDEVICESPARAMSA typedef ptr DICONFIGUREDEVICESPARAMSA

DICONFIGUREDEVICESPARAMSW	struct
dwSize	DWORD	?
dwcUsers	DWORD	?
lptszUserNames	LPWSTR	?
dwcFormats	DWORD	?
lprgFormats	LPDIACTIONFORMATW	?
hwnd	HWND	?
dics	DICOLORSET	<>
lpUnkDDSTarget	DWORD	?
DICONFIGUREDEVICESPARAMSW	ends

LPDICONFIGUREDEVICESPARAMSW typedef ptr DICONFIGUREDEVICESPARAMSW

ifdef UNICODE
DICONFIGUREDEVICESPARAMS typedef DICONFIGUREDEVICESPARAMSW
LPDICONFIGUREDEVICESPARAMS typedef LPDICONFIGUREDEVICESPARAMSW
else
DICONFIGUREDEVICESPARAMS typedef DICONFIGUREDEVICESPARAMSA
LPDICONFIGUREDEVICESPARAMS typedef LPDICONFIGUREDEVICESPARAMSA
endif

LPCDICONFIGUREDEVICESPARAMSA typedef ptr DICONFIGUREDEVICESPARAMSA
LPCDICONFIGUREDEVICESPARAMSW typedef ptr DICONFIGUREDEVICESPARAMSW

ifdef UNICODE
DICONFIGUREDEVICESPARAMS typedef DICONFIGUREDEVICESPARAMSW
LPCDICONFIGUREDEVICESPARAMS typedef LPCDICONFIGUREDEVICESPARAMSW
else
DICONFIGUREDEVICESPARAMS typedef DICONFIGUREDEVICESPARAMSA
LPCDICONFIGUREDEVICESPARAMS typedef LPCDICONFIGUREDEVICESPARAMSA
endif
LPCDICONFIGUREDEVICESPARAMS typedef ptr DICONFIGUREDEVICESPARAMS

DIDIFT_CONFIGURATION	EQU	00000001h
DIDIFT_OVERLAY	EQU	00000002h
DIDAL_CENTERED	EQU	00000000h
DIDAL_LEFTALIGNED	EQU	00000001h
DIDAL_RIGHTALIGNED	EQU	00000002h
DIDAL_MIDDLE	EQU	00000000h
DIDAL_TOPALIGNED	EQU	00000004h
DIDAL_BOTTOMALIGNED	EQU	00000008h
DIDEVICEIMAGEINFOA	struct
tszImagePath	CHAR MAX_PATH dup (?)
dwFlags	DWORD	?
dwViewID	DWORD	?
rcOverlay	RECT	<>
dwObjID	DWORD	?
dwcValidPts	DWORD	?
rgptCalloutLine	POINT 5 dup (<>)
rcCalloutRect	RECT	<>
dwTextAlign	DWORD	?
DIDEVICEIMAGEINFOA	ends

LPDIDEVICEIMAGEINFOA typedef ptr DIDEVICEIMAGEINFOA

DIDEVICEIMAGEINFOW	struct
tszImagePath	WCHAR MAX_PATH dup (?)
dwFlags	DWORD	?
dwViewID	DWORD	?
rcOverlay	RECT	<>
dwObjID	DWORD	?
dwcValidPts	DWORD	?
rgptCalloutLine	POINT 5 dup (<>)
rcCalloutRect	RECT	<>
dwTextAlign	DWORD	?
DIDEVICEIMAGEINFOW	ends

LPDIDEVICEIMAGEINFOW typedef ptr DIDEVICEIMAGEINFOW

ifdef UNICODE
DIDEVICEIMAGEINFO typedef DIDEVICEIMAGEINFOW
LPDIDEVICEIMAGEINFO typedef LPDIDEVICEIMAGEINFOW
else
DIDEVICEIMAGEINFO typedef DIDEVICEIMAGEINFOA
LPDIDEVICEIMAGEINFO typedef LPDIDEVICEIMAGEINFOA
endif

LPCDIDEVICEIMAGEINFOA typedef ptr DIDEVICEIMAGEINFOA
LPCDIDEVICEIMAGEINFOW typedef ptr DIDEVICEIMAGEINFOW

ifdef UNICODE
DIDEVICEIMAGEINFO typedef DIDEVICEIMAGEINFOW
LPCDIDEVICEIMAGEINFO typedef LPCDIDEVICEIMAGEINFOW
else 
DIDEVICEIMAGEINFO typedef DIDEVICEIMAGEINFOA
LPCDIDEVICEIMAGEINFO typedef LPCDIDEVICEIMAGEINFOA
endif 
LPCDIDEVICEIMAGEINFO typedef ptr DIDEVICEIMAGEINFO

DIDEVICEIMAGEINFOHEADERA	struct
dwSize	DWORD	?
dwSizeImageInfo	DWORD	?
dwcViews	DWORD	?
dwcButtons	DWORD	?
dwcAxes	DWORD	?
dwcPOVs	DWORD	?
dwBufferSize	DWORD	?
dwBufferUsed	DWORD	?
lprgImageInfoArray	LPDIDEVICEIMAGEINFOA	?
DIDEVICEIMAGEINFOHEADERA	ends

LPDIDEVICEIMAGEINFOHEADERA typedef ptr DIDEVICEIMAGEINFOHEADERA

DIDEVICEIMAGEINFOHEADERW	struct
dwSize	DWORD	?
dwSizeImageInfo	DWORD	?
dwcViews	DWORD	?
dwcButtons	DWORD	?
dwcAxes	DWORD	?
dwcPOVs	DWORD	?
dwBufferSize	DWORD	?
dwBufferUsed	DWORD	?
lprgImageInfoArray	LPDIDEVICEIMAGEINFOW	?
DIDEVICEIMAGEINFOHEADERW	ends

LPDIDEVICEIMAGEINFOHEADERW typedef ptr DIDEVICEIMAGEINFOHEADERW

ifdef UNICODE
DIDEVICEIMAGEINFOHEADER typedef DIDEVICEIMAGEINFOHEADERW
LPDIDEVICEIMAGEINFOHEADER typedef LPDIDEVICEIMAGEINFOHEADERW
else 
DIDEVICEIMAGEINFOHEADER typedef DIDEVICEIMAGEINFOHEADERA
LPDIDEVICEIMAGEINFOHEADER typedef LPDIDEVICEIMAGEINFOHEADERA
endif 
LPCDIDEVICEIMAGEINFOHEADERA typedef ptr DIDEVICEIMAGEINFOHEADERA
LPCDIDEVICEIMAGEINFOHEADERW typedef ptr DIDEVICEIMAGEINFOHEADERW
ifdef UNICODE
DIDEVICEIMAGEINFOHEADER typedef DIDEVICEIMAGEINFOHEADERW
LPCDIDEVICEIMAGEINFOHEADER typedef LPCDIDEVICEIMAGEINFOHEADERW
else 
DIDEVICEIMAGEINFOHEADER typedef DIDEVICEIMAGEINFOHEADERA
LPCDIDEVICEIMAGEINFOHEADER typedef LPCDIDEVICEIMAGEINFOHEADERA
endif 
LPCDIDEVICEIMAGEINFOHEADER typedef ptr DIDEVICEIMAGEINFOHEADER
endif 
if (DIRECTINPUT_VERSION ge 0500h)
DIDEVICEOBJECTINSTANCE_DX3A	struct
dwSize	DWORD	?
guidType	GUID	<>
dwOfs	DWORD	?
dwType	DWORD	?
dwFlags	DWORD	?
tszName	CHAR MAX_PATH dup (?)
DIDEVICEOBJECTINSTANCE_DX3A	ends

LPDIDEVICEOBJECTINSTANCE_DX3A typedef ptr DIDEVICEOBJECTINSTANCE_DX3A

DIDEVICEOBJECTINSTANCE_DX3W	struct
dwSize	DWORD	?
guidType	GUID	<>
dwOfs	DWORD	?
dwType	DWORD	?
dwFlags	DWORD	?
tszName	WCHAR MAX_PATH dup (?)
DIDEVICEOBJECTINSTANCE_DX3W	ends

LPDIDEVICEOBJECTINSTANCE_DX3W typedef ptr DIDEVICEOBJECTINSTANCE_DX3W

ifdef UNICODE
DIDEVICEOBJECTINSTANCE_DX3 typedef DIDEVICEOBJECTINSTANCE_DX3W
LPDIDEVICEOBJECTINSTANCE_DX3 typedef LPDIDEVICEOBJECTINSTANCE_DX3W
else 
DIDEVICEOBJECTINSTANCE_DX3 typedef DIDEVICEOBJECTINSTANCE_DX3A
LPDIDEVICEOBJECTINSTANCE_DX3 typedef LPDIDEVICEOBJECTINSTANCE_DX3A
endif 
LPCDIDEVICEOBJECTINSTANCE_DX3A typedef ptr DIDEVICEOBJECTINSTANCE_DX3A
LPCDIDEVICEOBJECTINSTANCE_DX3W typedef ptr DIDEVICEOBJECTINSTANCE_DX3W
LPCDIDEVICEOBJECTINSTANCE_DX3 typedef ptr DIDEVICEOBJECTINSTANCE_DX3
endif 
DIDEVICEOBJECTINSTANCEA	struct
dwSize	DWORD	?
guidType	GUID	<>
dwOfs	DWORD	?
dwType	DWORD	?
dwFlags	DWORD	?
tszName	CHAR MAX_PATH dup (?)
if (DIRECTINPUT_VERSION ge 0500h)
dwFFMaxForce	DWORD	?
dwFFForceResolution	DWORD	?
wCollectionNumber	WORD	?
wDesignatorIndex	WORD	?
wUsagePage	WORD	?
wUsage	WORD	?
dwDimension	DWORD	?
wExponent	WORD	?
wReportId	WORD	?
endif 
DIDEVICEOBJECTINSTANCEA	ends

LPDIDEVICEOBJECTINSTANCEA typedef ptr DIDEVICEOBJECTINSTANCEA

DIDEVICEOBJECTINSTANCEW	struct
dwSize	DWORD	?
guidType	GUID	<>
dwOfs	DWORD	?
dwType	DWORD	?
dwFlags	DWORD	?
tszName	WCHAR MAX_PATH dup (?)
if (DIRECTINPUT_VERSION ge 0500h)
dwFFMaxForce	DWORD	?
dwFFForceResolution	DWORD	?
wCollectionNumber	WORD	?
wDesignatorIndex	WORD	?
wUsagePage	WORD	?
wUsage	WORD	?
dwDimension	DWORD	?
wExponent	WORD	?
wReportId	WORD	?
endif 
DIDEVICEOBJECTINSTANCEW	ends

LPDIDEVICEOBJECTINSTANCEW typedef ptr DIDEVICEOBJECTINSTANCEW

ifdef UNICODE
DIDEVICEOBJECTINSTANCE typedef DIDEVICEOBJECTINSTANCEW
LPDIDEVICEOBJECTINSTANCE typedef LPDIDEVICEOBJECTINSTANCEW
else 
DIDEVICEOBJECTINSTANCE typedef DIDEVICEOBJECTINSTANCEA
LPDIDEVICEOBJECTINSTANCE typedef LPDIDEVICEOBJECTINSTANCEA
endif 
LPCDIDEVICEOBJECTINSTANCEA typedef ptr DIDEVICEOBJECTINSTANCEA
LPCDIDEVICEOBJECTINSTANCEW typedef ptr DIDEVICEOBJECTINSTANCEW
LPCDIDEVICEOBJECTINSTANCE typedef ptr DIDEVICEOBJECTINSTANCE
proto_LPDIENUMDEVICEOBJECTSCALLBACKA typedef proto stdcall :LPCDIDEVICEOBJECTINSTANCEA,:LPVOID
LPDIENUMDEVICEOBJECTSCALLBACKA typedef ptr proto_LPDIENUMDEVICEOBJECTSCALLBACKA
proto_LPDIENUMDEVICEOBJECTSCALLBACKW typedef proto stdcall :LPCDIDEVICEOBJECTINSTANCEW,:LPVOID
LPDIENUMDEVICEOBJECTSCALLBACKW typedef ptr proto_LPDIENUMDEVICEOBJECTSCALLBACKW
ifdef UNICODE
LPDIENUMDEVICEOBJECTSCALLBACK	EQU	<LPDIENUMDEVICEOBJECTSCALLBACKW>
else 
LPDIENUMDEVICEOBJECTSCALLBACK	EQU	<LPDIENUMDEVICEOBJECTSCALLBACKA>
endif 
if (DIRECTINPUT_VERSION ge 0500h)
DIDOI_FFACTUATOR	EQU	00000001h
DIDOI_FFEFFECTTRIGGER	EQU	00000002h
DIDOI_POLLED	EQU	00008000h
DIDOI_ASPECTPOSITION	EQU	00000100h
DIDOI_ASPECTVELOCITY	EQU	00000200h
DIDOI_ASPECTACCEL	EQU	00000300h
DIDOI_ASPECTFORCE	EQU	00000400h
DIDOI_ASPECTMASK	EQU	00000F00h
endif 
if (DIRECTINPUT_VERSION ge 050ah)
DIDOI_GUIDISUSAGE	EQU	00010000h
endif 
DIPROPHEADER	struct
dwSize	DWORD	?
dwHeaderSize	DWORD	?
dwObj	DWORD	?
dwHow	DWORD	?
DIPROPHEADER	ends

LPDIPROPHEADER typedef ptr DIPROPHEADER

LPCDIPROPHEADER typedef ptr DIPROPHEADER
DIPH_DEVICE	EQU	0
DIPH_BYOFFSET	EQU	1
DIPH_BYID	EQU	2
if (DIRECTINPUT_VERSION ge 050ah)
DIPH_BYUSAGE	EQU	3
endif 
if (DIRECTINPUT_VERSION ge 050ah)
DIMAKEUSAGEDWORD macro UsagePage,Usage
	exitm <MAKELONG ( Usage , UsagePage ) >
	endm
endif 
DIPROPDWORD	struct
diph	DIPROPHEADER	<>
dwData	DWORD	?
DIPROPDWORD	ends

LPDIPROPDWORD typedef ptr DIPROPDWORD

LPCDIPROPDWORD typedef ptr DIPROPDWORD
if (DIRECTINPUT_VERSION ge 0800h)
DIPROPPOINTER	struct
diph	DIPROPHEADER	<>
uData	UINT_PTR	?
DIPROPPOINTER	ends

LPDIPROPPOINTER typedef ptr DIPROPPOINTER

LPCDIPROPPOINTER typedef ptr DIPROPPOINTER
endif 
DIPROPRANGE	struct
diph	DIPROPHEADER	<>
lMin	SDWORD	?
lMax	SDWORD	?
DIPROPRANGE	ends

LPDIPROPRANGE typedef ptr DIPROPRANGE

LPCDIPROPRANGE typedef ptr DIPROPRANGE
DIPROPRANGE_NOMIN	EQU	80000000h
DIPROPRANGE_NOMAX	EQU	7FFFFFFFh
if (DIRECTINPUT_VERSION ge 050ah)
DIPROPCAL	struct
diph	DIPROPHEADER	<>
lMin	SDWORD	?
lCenter	SDWORD	?
lMax	SDWORD	?
DIPROPCAL	ends

LPDIPROPCAL typedef ptr DIPROPCAL

LPCDIPROPCAL typedef ptr DIPROPCAL
DIPROPCALPOV	struct
diph	DIPROPHEADER	<>
lMin	SDWORD 5 dup (?)
lMax	SDWORD 5 dup (?)
DIPROPCALPOV	ends

LPDIPROPCALPOV typedef ptr DIPROPCALPOV

LPCDIPROPCALPOV typedef ptr DIPROPCALPOV
DIPROPGUIDANDPATH	struct
diph	DIPROPHEADER	<>
guidClass	GUID	<>
wszPath	WCHAR MAX_PATH dup (?)
DIPROPGUIDANDPATH	ends

LPDIPROPGUIDANDPATH typedef ptr DIPROPGUIDANDPATH

LPCDIPROPGUIDANDPATH typedef ptr DIPROPGUIDANDPATH
DIPROPSTRING	struct
diph	DIPROPHEADER	<>
wsz	WCHAR MAX_PATH dup (?)
DIPROPSTRING	ends

LPDIPROPSTRING typedef ptr DIPROPSTRING

LPCDIPROPSTRING typedef ptr DIPROPSTRING
endif 
if (DIRECTINPUT_VERSION ge 0800h)
MAXCPOINTSNUM	EQU	8
CPOINT	struct
lP	SDWORD	?
dwLog	DWORD	?
CPOINT	ends

PCPOINT typedef ptr CPOINT

DIPROPCPOINTS	struct
diph	DIPROPHEADER	<>
dwCPointsNum	DWORD	?
cp	CPOINT MAXCPOINTSNUM dup (<>)
DIPROPCPOINTS	ends

LPDIPROPCPOINTS typedef ptr DIPROPCPOINTS

LPCDIPROPCPOINTS typedef ptr DIPROPCPOINTS
endif 
ifdef __cplusplus
MAKEDIPROP macro prop
	exitm <( prop ) >
	endm
else 
MAKEDIPROP macro prop
	exitm <( prop ) >
	endm
endif 
DIPROP_BUFFERSIZE	EQU	<MAKEDIPROP ( 1 )>
DIPROP_AXISMODE	EQU	<MAKEDIPROP ( 2 )>
DIPROPAXISMODE_ABS	EQU	0
DIPROPAXISMODE_REL	EQU	1
DIPROP_GRANULARITY	EQU	<MAKEDIPROP ( 3 )>
DIPROP_RANGE	EQU	<MAKEDIPROP ( 4 )>
DIPROP_DEADZONE	EQU	<MAKEDIPROP ( 5 )>
DIPROP_SATURATION	EQU	<MAKEDIPROP ( 6 )>
DIPROP_FFGAIN	EQU	<MAKEDIPROP ( 7 )>
DIPROP_FFLOAD	EQU	<MAKEDIPROP ( 8 )>
DIPROP_AUTOCENTER	EQU	<MAKEDIPROP ( 9 )>
DIPROPAUTOCENTER_OFF	EQU	0
DIPROPAUTOCENTER_ON	EQU	1
DIPROP_CALIBRATIONMODE	EQU	<MAKEDIPROP ( 10 )>
DIPROPCALIBRATIONMODE_COOKED	EQU	0
DIPROPCALIBRATIONMODE_RAW	EQU	1
if (DIRECTINPUT_VERSION ge 050ah)
DIPROP_CALIBRATION	EQU	<MAKEDIPROP ( 11 )>
DIPROP_GUIDANDPATH	EQU	<MAKEDIPROP ( 12 )>
DIPROP_INSTANCENAME	EQU	<MAKEDIPROP ( 13 )>
DIPROP_PRODUCTNAME	EQU	<MAKEDIPROP ( 14 )>
endif 
if (DIRECTINPUT_VERSION ge 05b2h)
DIPROP_JOYSTICKID	EQU	<MAKEDIPROP ( 15 )>
DIPROP_GETPORTDISPLAYNAME	EQU	<MAKEDIPROP ( 16 )>
endif 
if (DIRECTINPUT_VERSION ge 0700h)
DIPROP_PHYSICALRANGE	EQU	<MAKEDIPROP ( 18 )>
DIPROP_LOGICALRANGE	EQU	<MAKEDIPROP ( 19 )>
endif 
if (DIRECTINPUT_VERSION ge 0800h)
DIPROP_KEYNAME	EQU	<MAKEDIPROP ( 20 )>
DIPROP_CPOINTS	EQU	<MAKEDIPROP ( 21 )>
DIPROP_APPDATA	EQU	<MAKEDIPROP ( 22 )>
DIPROP_SCANCODE	EQU	<MAKEDIPROP ( 23 )>
DIPROP_VIDPID	EQU	<MAKEDIPROP ( 24 )>
DIPROP_USERNAME	EQU	<MAKEDIPROP ( 25 )>
DIPROP_TYPENAME	EQU	<MAKEDIPROP ( 26 )>
endif 
DIDEVICEOBJECTDATA_DX3	struct
dwOfs	DWORD	?
dwData	DWORD	?
dwTimeStamp	DWORD	?
dwSequence	DWORD	?
DIDEVICEOBJECTDATA_DX3	ends

LPDIDEVICEOBJECTDATA_DX3 typedef ptr DIDEVICEOBJECTDATA_DX3

LPCDIDEVICEOBJECTDATA_DX typedef ptr DIDEVICEOBJECTDATA_DX3
DIDEVICEOBJECTDATA	struct
dwOfs	DWORD	?
dwData	DWORD	?
dwTimeStamp	DWORD	?
dwSequence	DWORD	?
if (DIRECTINPUT_VERSION ge 0800h)
uAppData	UINT_PTR	?
endif 
DIDEVICEOBJECTDATA	ends

LPDIDEVICEOBJECTDATA typedef ptr DIDEVICEOBJECTDATA

LPCDIDEVICEOBJECTDATA typedef ptr DIDEVICEOBJECTDATA
DIGDD_PEEK	EQU	00000001h
DISEQUENCE_COMPARE macro dwSequence1,cmp,dwSequence2
	exitm <( ( ( dwSequence1 ) - ( dwSequence2 ) ) cmp 0 ) >
	endm
DISCL_EXCLUSIVE	EQU	00000001h
DISCL_NONEXCLUSIVE	EQU	00000002h
DISCL_FOREGROUND	EQU	00000004h
DISCL_BACKGROUND	EQU	00000008h
DISCL_NOWINKEY	EQU	00000010h
if (DIRECTINPUT_VERSION ge 0500h)
DIDEVICEINSTANCE_DX3A	struct
dwSize	DWORD	?
guidInstance	GUID	<>
guidProduct	GUID	<>
dwDevType	DWORD	?
tszInstanceName	CHAR MAX_PATH dup (?)
tszProductName	CHAR MAX_PATH dup (?)
DIDEVICEINSTANCE_DX3A	ends

LPDIDEVICEINSTANCE_DX3A typedef ptr DIDEVICEINSTANCE_DX3A

DIDEVICEINSTANCE_DX3W	struct
dwSize	DWORD	?
guidInstance	GUID	<>
guidProduct	GUID	<>
dwDevType	DWORD	?
tszInstanceName	WCHAR MAX_PATH dup (?)
tszProductName	WCHAR MAX_PATH dup (?)
DIDEVICEINSTANCE_DX3W	ends

LPDIDEVICEINSTANCE_DX3W typedef ptr DIDEVICEINSTANCE_DX3W

ifdef UNICODE
DIDEVICEINSTANCE_DX3 typedef DIDEVICEINSTANCE_DX3W
LPDIDEVICEINSTANCE_DX3 typedef LPDIDEVICEINSTANCE_DX3W
else 
DIDEVICEINSTANCE_DX3 typedef DIDEVICEINSTANCE_DX3A
LPDIDEVICEINSTANCE_DX3 typedef LPDIDEVICEINSTANCE_DX3A
endif 
LPCDIDEVICEINSTANCE_DX3A typedef ptr DIDEVICEINSTANCE_DX3A
LPCDIDEVICEINSTANCE_DX3W typedef ptr DIDEVICEINSTANCE_DX3W
LPCDIDEVICEINSTANCE_DX3 typedef ptr DIDEVICEINSTANCE_DX3
endif 
DIDEVICEINSTANCEA	struct
dwSize	DWORD	?
guidInstance	GUID	<>
guidProduct	GUID	<>
dwDevType	DWORD	?
tszInstanceName	CHAR MAX_PATH dup (?)
tszProductName	CHAR MAX_PATH dup (?)
if (DIRECTINPUT_VERSION ge 0500h)
guidFFDriver	GUID	<>
wUsagePage	WORD	?
wUsage	WORD	?
endif 
DIDEVICEINSTANCEA	ends

LPDIDEVICEINSTANCEA typedef ptr DIDEVICEINSTANCEA

DIDEVICEINSTANCEW	struct
dwSize	DWORD	?
guidInstance	GUID	<>
guidProduct	GUID	<>
dwDevType	DWORD	?
tszInstanceName	WCHAR MAX_PATH dup (?)
tszProductName	WCHAR MAX_PATH dup (?)
if (DIRECTINPUT_VERSION ge 0500h)
guidFFDriver	GUID	<>
wUsagePage	WORD	?
wUsage	WORD	?
endif 
DIDEVICEINSTANCEW	ends

LPDIDEVICEINSTANCEW typedef ptr DIDEVICEINSTANCEW

ifdef UNICODE
DIDEVICEINSTANCE typedef DIDEVICEINSTANCEW
LPDIDEVICEINSTANCE typedef LPDIDEVICEINSTANCEW
else
DIDEVICEINSTANCE typedef DIDEVICEINSTANCEA
LPDIDEVICEINSTANCE typedef LPDIDEVICEINSTANCEA
endif

LPCDIDEVICEINSTANCEA typedef ptr DIDEVICEINSTANCEA
LPCDIDEVICEINSTANCEW typedef ptr DIDEVICEINSTANCEW

ifdef UNICODE
DIDEVICEINSTANCE typedef DIDEVICEINSTANCEW
LPCDIDEVICEINSTANCE typedef LPCDIDEVICEINSTANCEW
else
DIDEVICEINSTANCE typedef DIDEVICEINSTANCEA
LPCDIDEVICEINSTANCE typedef LPCDIDEVICEINSTANCEA
endif

LPCDIDEVICEINSTANCE typedef ptr DIDEVICEINSTANCE

;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputDeviceW>
DECLARE_INTERFACE_( IDirectInputDeviceW , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetCapabilities , :LPDIDEVCAPS
STDMETHOD  EnumObjects_ , :LPDIENUMDEVICEOBJECTSCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetProperty , :REFGUID, :LPDIPROPHEADER
STDMETHOD  SetProperty , :REFGUID, :LPCDIPROPHEADER
STDMETHOD  Acquire 
STDMETHOD  Unacquire 
STDMETHOD  GetDeviceState , :DWORD, :LPVOID
STDMETHOD  GetDeviceData , :DWORD, :LPDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  SetDataFormat , :LPCDIDATAFORMAT
STDMETHOD  SetEventNotification , :HANDLE
STDMETHOD  SetCooperativeLevel , :HWND, :DWORD
STDMETHOD  GetObjectInfo , :LPDIDEVICEOBJECTINSTANCEW, :DWORD, :DWORD
STDMETHOD  GetDeviceInfo , :LPDIDEVICEINSTANCEW
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD, :REFGUID
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTDEVICEW typedef ptr IDirectInputDeviceW

;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputDeviceA>
DECLARE_INTERFACE_( IDirectInputDeviceA , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetCapabilities , :LPDIDEVCAPS
STDMETHOD  EnumObjects_ , :LPDIENUMDEVICEOBJECTSCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetProperty , :REFGUID, :LPDIPROPHEADER
STDMETHOD  SetProperty , :REFGUID, :LPCDIPROPHEADER
STDMETHOD  Acquire 
STDMETHOD  Unacquire 
STDMETHOD  GetDeviceState , :DWORD, :LPVOID
STDMETHOD  GetDeviceData , :DWORD, :LPDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  SetDataFormat , :LPCDIDATAFORMAT
STDMETHOD  SetEventNotification , :HANDLE
STDMETHOD  SetCooperativeLevel , :HWND, :DWORD
STDMETHOD  GetObjectInfo , :LPDIDEVICEOBJECTINSTANCEA, :DWORD, :DWORD
STDMETHOD  GetDeviceInfo , :LPDIDEVICEINSTANCEA
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD, :REFGUID
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTDEVICEA typedef ptr IDirectInputDeviceA

ifdef UNICODE
IID_IDirectInputDevice	EQU	<IID_IDirectInputDeviceW>
IDirectInputDevice	EQU	<IDirectInputDeviceW>
IDirectInputDeviceVtbl	EQU	<IDirectInputDeviceWVtbl>
else 
IID_IDirectInputDevice	EQU	<IID_IDirectInputDeviceA>
IDirectInputDevice	EQU	<IDirectInputDeviceA>
IDirectInputDeviceVtbl	EQU	<IDirectInputDeviceAVtbl>
endif 
LPDIRECTINPUTDEVICE typedef ptr IDirectInputDevice

if  NOT defined(__cplusplus) OR defined(CINTERFACE)
IDirectInputDevice_QueryInterface macro p,a,b
	exitm <vf(p, IDirectInputDevice, QueryInterface), a , b >
	endm
IDirectInputDevice_AddRef macro p
	exitm <vf(p, IDirectInputDevice, AddRef)>
	endm
IDirectInputDevice_Release macro p
	exitm <vf(p, IDirectInputDevice, Release)>
	endm
IDirectInputDevice_GetCapabilities macro p,a
	exitm <vf(p, IDirectInputDevice, GetCapabilities), a >
	endm
IDirectInputDevice_EnumObjects macro p,a,b,c
	exitm <vf(p, IDirectInputDevice, EnumObjects_), a , b , c >
	endm
IDirectInputDevice_GetProperty macro p,a,b
	exitm <vf(p, IDirectInputDevice, GetProperty), a , b >
	endm
IDirectInputDevice_SetProperty macro p,a,b
	exitm <vf(p, IDirectInputDevice, SetProperty), a , b >
	endm
IDirectInputDevice_Acquire macro p
	exitm <vf(p, IDirectInputDevice, Acquire)>
	endm
IDirectInputDevice_Unacquire macro p
	exitm <vf(p, IDirectInputDevice, Unacquire)>
	endm
IDirectInputDevice_GetDeviceState macro p,a,b
	exitm <vf(p, IDirectInputDevice, GetDeviceState), a , b >
	endm
IDirectInputDevice_GetDeviceData macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice, GetDeviceData), a , b , c , d >
	endm
IDirectInputDevice_SetDataFormat macro p,a
	exitm <vf(p, IDirectInputDevice, SetDataFormat), a >
	endm
IDirectInputDevice_SetEventNotification macro p,a
	exitm <vf(p, IDirectInputDevice, SetEventNotification), a >
	endm
IDirectInputDevice_SetCooperativeLevel macro p,a,b
	exitm <vf(p, IDirectInputDevice, SetCooperativeLevel), a , b >
	endm
IDirectInputDevice_GetObjectInfo macro p,a,b,c
	exitm <vf(p, IDirectInputDevice, GetObjectInfo), a , b , c >
	endm
IDirectInputDevice_GetDeviceInfo macro p,a
	exitm <vf(p, IDirectInputDevice, GetDeviceInfo), a >
	endm
IDirectInputDevice_RunControlPanel macro p,a,b
	exitm <vf(p, IDirectInputDevice, RunControlPanel), a , b >
	endm
IDirectInputDevice_Initialize macro p,a,b,c
	exitm <vf(p, IDirectInputDevice, Initialize), a , b , c >
	endm
else 
IDirectInputDevice_QueryInterface macro p,a,b
	exitm <( p ) -> QueryInterface ( a , b ) >
	endm
IDirectInputDevice_AddRef macro p
	exitm <( p ) -> AddRef ( ) >
	endm
IDirectInputDevice_Release macro p
	exitm <( p ) -> Release ( ) >
	endm
IDirectInputDevice_GetCapabilities macro p,a
	exitm <( p ) -> GetCapabilities ( a ) >
	endm
IDirectInputDevice_EnumObjects macro p,a,b,c
	exitm <( p ) -> EnumObjects ( a , b , c ) >
	endm
IDirectInputDevice_GetProperty macro p,a,b
	exitm <( p ) -> GetProperty ( a , b ) >
	endm
IDirectInputDevice_SetProperty macro p,a,b
	exitm <( p ) -> SetProperty ( a , b ) >
	endm
IDirectInputDevice_Acquire macro p
	exitm <( p ) -> Acquire ( ) >
	endm
IDirectInputDevice_Unacquire macro p
	exitm <( p ) -> Unacquire ( ) >
	endm
IDirectInputDevice_GetDeviceState macro p,a,b
	exitm <( p ) -> GetDeviceState ( a , b ) >
	endm
IDirectInputDevice_GetDeviceData macro p,a,b,c,d
	exitm <( p ) -> GetDeviceData ( a , b , c , d ) >
	endm
IDirectInputDevice_SetDataFormat macro p,a
	exitm <( p ) -> SetDataFormat ( a ) >
	endm
IDirectInputDevice_SetEventNotification macro p,a
	exitm <( p ) -> SetEventNotification ( a ) >
	endm
IDirectInputDevice_SetCooperativeLevel macro p,a,b
	exitm <( p ) -> SetCooperativeLevel ( a , b ) >
	endm
IDirectInputDevice_GetObjectInfo macro p,a,b,c
	exitm <( p ) -> GetObjectInfo ( a , b , c ) >
	endm
IDirectInputDevice_GetDeviceInfo macro p,a
	exitm <( p ) -> GetDeviceInfo ( a ) >
	endm
IDirectInputDevice_RunControlPanel macro p,a,b
	exitm <( p ) -> RunControlPanel ( a , b ) >
	endm
IDirectInputDevice_Initialize macro p,a,b,c
	exitm <( p ) -> Initialize ( a , b , c ) >
	endm
endif 
endif 
if (DIRECTINPUT_VERSION ge 0500h)
DISFFC_RESET	EQU	00000001h
DISFFC_STOPALL	EQU	00000002h
DISFFC_PAUSE	EQU	00000004h
DISFFC_CONTINUE	EQU	00000008h
DISFFC_SETACTUATORSON	EQU	00000010h
DISFFC_SETACTUATORSOFF	EQU	00000020h
DIGFFS_EMPTY	EQU	00000001h
DIGFFS_STOPPED	EQU	00000002h
DIGFFS_PAUSED	EQU	00000004h
DIGFFS_ACTUATORSON	EQU	00000010h
DIGFFS_ACTUATORSOFF	EQU	00000020h
DIGFFS_POWERON	EQU	00000040h
DIGFFS_POWEROFF	EQU	00000080h
DIGFFS_SAFETYSWITCHON	EQU	00000100h
DIGFFS_SAFETYSWITCHOFF	EQU	00000200h
DIGFFS_USERFFSWITCHON	EQU	00000400h
DIGFFS_USERFFSWITCHOFF	EQU	00000800h
DIGFFS_DEVICELOST	EQU	80000000h
ifndef DIJ_RINGZERO
DIEFFECTINFOA	struct
dwSize	DWORD	?
guid	GUID	<>
dwEffType	DWORD	?
dwStaticParams	DWORD	?
dwDynamicParams	DWORD	?
tszName	CHAR MAX_PATH dup (?)
DIEFFECTINFOA	ends

LPDIEFFECTINFOA typedef ptr DIEFFECTINFOA

DIEFFECTINFOW	struct
dwSize	DWORD	?
guid	GUID	<>
dwEffType	DWORD	?
dwStaticParams	DWORD	?
dwDynamicParams	DWORD	?
tszName	WCHAR MAX_PATH dup (?)
DIEFFECTINFOW	ends

LPDIEFFECTINFOW typedef ptr DIEFFECTINFOW

ifdef UNICODE
DIEFFECTINFO typedef DIEFFECTINFOW
LPDIEFFECTINFO typedef LPDIEFFECTINFOW
else 
DIEFFECTINFO typedef DIEFFECTINFOA
LPDIEFFECTINFO typedef LPDIEFFECTINFOA
endif 
LPCDIEFFECTINFOA typedef ptr DIEFFECTINFOA
LPCDIEFFECTINFOW typedef ptr DIEFFECTINFOW
LPCDIEFFECTINFO typedef ptr DIEFFECTINFO
DISDD_CONTINUE	EQU	00000001h
proto_LPDIENUMEFFECTSCALLBACKA typedef proto stdcall :LPCDIEFFECTINFOA,:LPVOID
LPDIENUMEFFECTSCALLBACKA typedef ptr proto_LPDIENUMEFFECTSCALLBACKA
proto_LPDIENUMEFFECTSCALLBACKW typedef proto stdcall :LPCDIEFFECTINFOW,:LPVOID
LPDIENUMEFFECTSCALLBACKW typedef ptr proto_LPDIENUMEFFECTSCALLBACKW
ifdef UNICODE
LPDIENUMEFFECTSCALLBACK	EQU	<LPDIENUMEFFECTSCALLBACKW>
else 
LPDIENUMEFFECTSCALLBACK	EQU	<LPDIENUMEFFECTSCALLBACKA>
endif 
proto_LPDIENUMCREATEDEFFECTOBJECTSCALLBACK typedef proto stdcall :LPDIRECTINPUTEFFECT,:LPVOID
LPDIENUMCREATEDEFFECTOBJECTSCALLBACK typedef ptr proto_LPDIENUMCREATEDEFFECTOBJECTSCALLBACK
;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputDevice2W>
DECLARE_INTERFACE_( IDirectInputDevice2W , IDirectInputDeviceW)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetCapabilities , :LPDIDEVCAPS
STDMETHOD  EnumObjects_ , :LPDIENUMDEVICEOBJECTSCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetProperty , :REFGUID, :LPDIPROPHEADER
STDMETHOD  SetProperty , :REFGUID, :LPCDIPROPHEADER
STDMETHOD  Acquire 
STDMETHOD  Unacquire 
STDMETHOD  GetDeviceState , :DWORD, :LPVOID
STDMETHOD  GetDeviceData , :DWORD, :LPDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  SetDataFormat , :LPCDIDATAFORMAT
STDMETHOD  SetEventNotification , :HANDLE
STDMETHOD  SetCooperativeLevel , :HWND, :DWORD
STDMETHOD  GetObjectInfo , :LPDIDEVICEOBJECTINSTANCEW, :DWORD, :DWORD
STDMETHOD  GetDeviceInfo , :LPDIDEVICEINSTANCEW
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD, :REFGUID
STDMETHOD  CreateEffect , :REFGUID, :LPCDIEFFECT, :ptr LPDIRECTINPUTEFFECT, :LPUNKNOWN
STDMETHOD  EnumEffects , :LPDIENUMEFFECTSCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetEffectInfo , :LPDIEFFECTINFOW, :REFGUID
STDMETHOD  GetForceFeedbackState , :LPDWORD
STDMETHOD  SendForceFeedbackCommand , :DWORD
STDMETHOD  EnumCreatedEffectObjects , :LPDIENUMCREATEDEFFECTOBJECTSCALLBACK, :LPVOID, :DWORD
STDMETHOD  Escape_ , :LPDIEFFESCAPE
STDMETHOD  Poll 
STDMETHOD  SendDeviceData , :DWORD, :LPCDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTDEVICE2W typedef ptr IDirectInputDevice2W

;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputDevice2A>
DECLARE_INTERFACE_( IDirectInputDevice2A , IDirectInputDeviceA)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetCapabilities , :LPDIDEVCAPS
STDMETHOD  EnumObjects_ , :LPDIENUMDEVICEOBJECTSCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetProperty , :REFGUID, :LPDIPROPHEADER
STDMETHOD  SetProperty , :REFGUID, :LPCDIPROPHEADER
STDMETHOD  Acquire 
STDMETHOD  Unacquire 
STDMETHOD  GetDeviceState , :DWORD, :LPVOID
STDMETHOD  GetDeviceData , :DWORD, :LPDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  SetDataFormat , :LPCDIDATAFORMAT
STDMETHOD  SetEventNotification , :HANDLE
STDMETHOD  SetCooperativeLevel , :HWND, :DWORD
STDMETHOD  GetObjectInfo , :LPDIDEVICEOBJECTINSTANCEA, :DWORD, :DWORD
STDMETHOD  GetDeviceInfo , :LPDIDEVICEINSTANCEA
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD, :REFGUID
STDMETHOD  CreateEffect , :REFGUID, :LPCDIEFFECT, :ptr LPDIRECTINPUTEFFECT, :LPUNKNOWN
STDMETHOD  EnumEffects , :LPDIENUMEFFECTSCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetEffectInfo , :LPDIEFFECTINFOA, :REFGUID
STDMETHOD  GetForceFeedbackState , :LPDWORD
STDMETHOD  SendForceFeedbackCommand , :DWORD
STDMETHOD  EnumCreatedEffectObjects , :LPDIENUMCREATEDEFFECTOBJECTSCALLBACK, :LPVOID, :DWORD
STDMETHOD  Escape_ , :LPDIEFFESCAPE
STDMETHOD  Poll 
STDMETHOD  SendDeviceData , :DWORD, :LPCDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTDEVICE2A typedef ptr IDirectInputDevice2A

ifdef UNICODE
IID_IDirectInputDevice2	EQU	<IID_IDirectInputDevice2W>
IDirectInputDevice2	EQU	<IDirectInputDevice2W>
IDirectInputDevice2Vtbl	EQU	<IDirectInputDevice2WVtbl>
else 
IID_IDirectInputDevice2	EQU	<IID_IDirectInputDevice2A>
IDirectInputDevice2	EQU	<IDirectInputDevice2A>
IDirectInputDevice2Vtbl	EQU	<IDirectInputDevice2AVtbl>
endif 
LPDIRECTINPUTDEVICE2 typedef ptr IDirectInputDevice2

if  NOT defined(__cplusplus) OR defined(CINTERFACE)
IDirectInputDevice2_QueryInterface macro p,a,b
	exitm <vf(p, IDirectInputDevice2, QueryInterface), a , b >
	endm
IDirectInputDevice2_AddRef macro p
	exitm <vf(p, IDirectInputDevice2, AddRef)>
	endm
IDirectInputDevice2_Release macro p
	exitm <vf(p, IDirectInputDevice2, Release)>
	endm
IDirectInputDevice2_GetCapabilities macro p,a
	exitm <vf(p, IDirectInputDevice2, GetCapabilities), a >
	endm
IDirectInputDevice2_EnumObjects macro p,a,b,c
	exitm <vf(p, IDirectInputDevice2, EnumObjects_), a , b , c >
	endm
IDirectInputDevice2_GetProperty macro p,a,b
	exitm <vf(p, IDirectInputDevice2, GetProperty), a , b >
	endm
IDirectInputDevice2_SetProperty macro p,a,b
	exitm <vf(p, IDirectInputDevice2, SetProperty), a , b >
	endm
IDirectInputDevice2_Acquire macro p
	exitm <vf(p, IDirectInputDevice2, Acquire)>
	endm
IDirectInputDevice2_Unacquire macro p
	exitm <vf(p, IDirectInputDevice2, Unacquire)>
	endm
IDirectInputDevice2_GetDeviceState macro p,a,b
	exitm <vf(p, IDirectInputDevice2, GetDeviceState), a , b >
	endm
IDirectInputDevice2_GetDeviceData macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice2, GetDeviceData), a , b , c , d >
	endm
IDirectInputDevice2_SetDataFormat macro p,a
	exitm <vf(p, IDirectInputDevice2, SetDataFormat), a >
	endm
IDirectInputDevice2_SetEventNotification macro p,a
	exitm <vf(p, IDirectInputDevice2, SetEventNotification), a >
	endm
IDirectInputDevice2_SetCooperativeLevel macro p,a,b
	exitm <vf(p, IDirectInputDevice2, SetCooperativeLevel), a , b >
	endm
IDirectInputDevice2_GetObjectInfo macro p,a,b,c
	exitm <vf(p, IDirectInputDevice2, GetObjectInfo), a , b , c >
	endm
IDirectInputDevice2_GetDeviceInfo macro p,a
	exitm <vf(p, IDirectInputDevice2, GetDeviceInfo), a >
	endm
IDirectInputDevice2_RunControlPanel macro p,a,b
	exitm <vf(p, IDirectInputDevice2, RunControlPanel), a , b >
	endm
IDirectInputDevice2_Initialize macro p,a,b,c
	exitm <vf(p, IDirectInputDevice2, Initialize), a , b , c >
	endm
IDirectInputDevice2_CreateEffect macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice2, CreateEffect), a , b , c , d >
	endm
IDirectInputDevice2_EnumEffects macro p,a,b,c
	exitm <vf(p, IDirectInputDevice2, EnumEffects), a , b , c >
	endm
IDirectInputDevice2_GetEffectInfo macro p,a,b
	exitm <vf(p, IDirectInputDevice2, GetEffectInfo), a , b >
	endm
IDirectInputDevice2_GetForceFeedbackState macro p,a
	exitm <vf(p, IDirectInputDevice2, GetForceFeedbackState), a >
	endm
IDirectInputDevice2_SendForceFeedbackCommand macro p,a
	exitm <vf(p, IDirectInputDevice2, SendForceFeedbackCommand), a >
	endm
IDirectInputDevice2_EnumCreatedEffectObjects macro p,a,b,c
	exitm <vf(p, IDirectInputDevice2, EnumCreatedEffectObjects), a , b , c >
	endm
IDirectInputDevice2_Escape macro p,a
	exitm <vf(p, IDirectInputDevice2, Escape_), a >
	endm
IDirectInputDevice2_Poll macro p
	exitm <vf(p, IDirectInputDevice2, Poll)>
	endm
IDirectInputDevice2_SendDeviceData macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice2, SendDeviceData), a , b , c , d >
	endm
else 
IDirectInputDevice2_QueryInterface macro p,a,b
	exitm <( p ) -> QueryInterface ( a , b ) >
	endm
IDirectInputDevice2_AddRef macro p
	exitm <( p ) -> AddRef ( ) >
	endm
IDirectInputDevice2_Release macro p
	exitm <( p ) -> Release ( ) >
	endm
IDirectInputDevice2_GetCapabilities macro p,a
	exitm <( p ) -> GetCapabilities ( a ) >
	endm
IDirectInputDevice2_EnumObjects macro p,a,b,c
	exitm <( p ) -> EnumObjects ( a , b , c ) >
	endm
IDirectInputDevice2_GetProperty macro p,a,b
	exitm <( p ) -> GetProperty ( a , b ) >
	endm
IDirectInputDevice2_SetProperty macro p,a,b
	exitm <( p ) -> SetProperty ( a , b ) >
	endm
IDirectInputDevice2_Acquire macro p
	exitm <( p ) -> Acquire ( ) >
	endm
IDirectInputDevice2_Unacquire macro p
	exitm <( p ) -> Unacquire ( ) >
	endm
IDirectInputDevice2_GetDeviceState macro p,a,b
	exitm <( p ) -> GetDeviceState ( a , b ) >
	endm
IDirectInputDevice2_GetDeviceData macro p,a,b,c,d
	exitm <( p ) -> GetDeviceData ( a , b , c , d ) >
	endm
IDirectInputDevice2_SetDataFormat macro p,a
	exitm <( p ) -> SetDataFormat ( a ) >
	endm
IDirectInputDevice2_SetEventNotification macro p,a
	exitm <( p ) -> SetEventNotification ( a ) >
	endm
IDirectInputDevice2_SetCooperativeLevel macro p,a,b
	exitm <( p ) -> SetCooperativeLevel ( a , b ) >
	endm
IDirectInputDevice2_GetObjectInfo macro p,a,b,c
	exitm <( p ) -> GetObjectInfo ( a , b , c ) >
	endm
IDirectInputDevice2_GetDeviceInfo macro p,a
	exitm <( p ) -> GetDeviceInfo ( a ) >
	endm
IDirectInputDevice2_RunControlPanel macro p,a,b
	exitm <( p ) -> RunControlPanel ( a , b ) >
	endm
IDirectInputDevice2_Initialize macro p,a,b,c
	exitm <( p ) -> Initialize ( a , b , c ) >
	endm
IDirectInputDevice2_CreateEffect macro p,a,b,c,d
	exitm <( p ) -> CreateEffect ( a , b , c , d ) >
	endm
IDirectInputDevice2_EnumEffects macro p,a,b,c
	exitm <( p ) -> EnumEffects ( a , b , c ) >
	endm
IDirectInputDevice2_GetEffectInfo macro p,a,b
	exitm <( p ) -> GetEffectInfo ( a , b ) >
	endm
IDirectInputDevice2_GetForceFeedbackState macro p,a
	exitm <( p ) -> GetForceFeedbackState ( a ) >
	endm
IDirectInputDevice2_SendForceFeedbackCommand macro p,a
	exitm <( p ) -> SendForceFeedbackCommand ( a ) >
	endm
IDirectInputDevice2_EnumCreatedEffectObjects macro p,a,b,c
	exitm <( p ) -> EnumCreatedEffectObjects ( a , b , c ) >
	endm
IDirectInputDevice2_Escape macro p,a
	exitm <( p ) -> Escape ( a ) >
	endm
IDirectInputDevice2_Poll macro p
	exitm <( p ) -> Poll ( ) >
	endm
IDirectInputDevice2_SendDeviceData macro p,a,b,c,d
	exitm <( p ) -> SendDeviceData ( a , b , c , d ) >
	endm
endif 
endif 
endif 
if (DIRECTINPUT_VERSION ge 0700h)
DIFEF_DEFAULT	EQU	00000000h
DIFEF_INCLUDENONSTANDARD	EQU	00000001h
DIFEF_MODIFYIFNEEDED	EQU	00000010h
ifndef DIJ_RINGZERO
;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputDevice7W>
DECLARE_INTERFACE_( IDirectInputDevice7W , IDirectInputDevice2W)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetCapabilities , :LPDIDEVCAPS
STDMETHOD  EnumObjects_ , :LPDIENUMDEVICEOBJECTSCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetProperty , :REFGUID, :LPDIPROPHEADER
STDMETHOD  SetProperty , :REFGUID, :LPCDIPROPHEADER
STDMETHOD  Acquire 
STDMETHOD  Unacquire 
STDMETHOD  GetDeviceState , :DWORD, :LPVOID
STDMETHOD  GetDeviceData , :DWORD, :LPDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  SetDataFormat , :LPCDIDATAFORMAT
STDMETHOD  SetEventNotification , :HANDLE
STDMETHOD  SetCooperativeLevel , :HWND, :DWORD
STDMETHOD  GetObjectInfo , :LPDIDEVICEOBJECTINSTANCEW, :DWORD, :DWORD
STDMETHOD  GetDeviceInfo , :LPDIDEVICEINSTANCEW
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD, :REFGUID
STDMETHOD  CreateEffect , :REFGUID, :LPCDIEFFECT, :ptr LPDIRECTINPUTEFFECT, :LPUNKNOWN
STDMETHOD  EnumEffects , :LPDIENUMEFFECTSCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetEffectInfo , :LPDIEFFECTINFOW, :REFGUID
STDMETHOD  GetForceFeedbackState , :LPDWORD
STDMETHOD  SendForceFeedbackCommand , :DWORD
STDMETHOD  EnumCreatedEffectObjects , :LPDIENUMCREATEDEFFECTOBJECTSCALLBACK, :LPVOID, :DWORD
STDMETHOD  Escape_ , :LPDIEFFESCAPE
STDMETHOD  Poll 
STDMETHOD  SendDeviceData , :DWORD, :LPCDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  EnumEffectsInFile , :LPWSTR, :LPDIENUMEFFECTSINFILECALLBACK, :LPVOID, :DWORD
STDMETHOD  WriteEffectToFile , :LPWSTR, :DWORD, :LPDIFILEEFFECT, :DWORD
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTDEVICE7W typedef ptr IDirectInputDevice7W

;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputDevice7A>
DECLARE_INTERFACE_( IDirectInputDevice7A , IDirectInputDevice2A)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetCapabilities , :LPDIDEVCAPS
STDMETHOD  EnumObjects_ , :LPDIENUMDEVICEOBJECTSCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetProperty , :REFGUID, :LPDIPROPHEADER
STDMETHOD  SetProperty , :REFGUID, :LPCDIPROPHEADER
STDMETHOD  Acquire 
STDMETHOD  Unacquire 
STDMETHOD  GetDeviceState , :DWORD, :LPVOID
STDMETHOD  GetDeviceData , :DWORD, :LPDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  SetDataFormat , :LPCDIDATAFORMAT
STDMETHOD  SetEventNotification , :HANDLE
STDMETHOD  SetCooperativeLevel , :HWND, :DWORD
STDMETHOD  GetObjectInfo , :LPDIDEVICEOBJECTINSTANCEA, :DWORD, :DWORD
STDMETHOD  GetDeviceInfo , :LPDIDEVICEINSTANCEA
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD, :REFGUID
STDMETHOD  CreateEffect , :REFGUID, :LPCDIEFFECT, :ptr LPDIRECTINPUTEFFECT, :LPUNKNOWN
STDMETHOD  EnumEffects , :LPDIENUMEFFECTSCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetEffectInfo , :LPDIEFFECTINFOA, :REFGUID
STDMETHOD  GetForceFeedbackState , :LPDWORD
STDMETHOD  SendForceFeedbackCommand , :DWORD
STDMETHOD  EnumCreatedEffectObjects , :LPDIENUMCREATEDEFFECTOBJECTSCALLBACK, :LPVOID, :DWORD
STDMETHOD  Escape_ , :LPDIEFFESCAPE
STDMETHOD  Poll 
STDMETHOD  SendDeviceData , :DWORD, :LPCDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  EnumEffectsInFile , :LPSTR, :LPDIENUMEFFECTSINFILECALLBACK, :LPVOID, :DWORD
STDMETHOD  WriteEffectToFile , :LPSTR, :DWORD, :LPDIFILEEFFECT, :DWORD
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTDEVICE7A typedef ptr IDirectInputDevice7A

ifdef UNICODE
IID_IDirectInputDevice7	EQU	<IID_IDirectInputDevice7W>
IDirectInputDevice7	EQU	<IDirectInputDevice7W>
IDirectInputDevice7Vtbl	EQU	<IDirectInputDevice7WVtbl>
else 
IID_IDirectInputDevice7	EQU	<IID_IDirectInputDevice7A>
IDirectInputDevice7	EQU	<IDirectInputDevice7A>
IDirectInputDevice7Vtbl	EQU	<IDirectInputDevice7AVtbl>
endif 
LPDIRECTINPUTDEVICE7 typedef ptr IDirectInputDevice7

if  NOT defined(__cplusplus) OR defined(CINTERFACE)
IDirectInputDevice7_QueryInterface macro p,a,b
	exitm <vf(p, IDirectInputDevice7, QueryInterface), a , b >
	endm
IDirectInputDevice7_AddRef macro p
	exitm <vf(p, IDirectInputDevice7, AddRef)>
	endm
IDirectInputDevice7_Release macro p
	exitm <vf(p, IDirectInputDevice7, Release)>
	endm
IDirectInputDevice7_GetCapabilities macro p,a
	exitm <vf(p, IDirectInputDevice7, GetCapabilities), a >
	endm
IDirectInputDevice7_EnumObjects macro p,a,b,c
	exitm <vf(p, IDirectInputDevice7, EnumObjects_), a , b , c >
	endm
IDirectInputDevice7_GetProperty macro p,a,b
	exitm <vf(p, IDirectInputDevice7, GetProperty), a , b >
	endm
IDirectInputDevice7_SetProperty macro p,a,b
	exitm <vf(p, IDirectInputDevice7, SetProperty), a , b >
	endm
IDirectInputDevice7_Acquire macro p
	exitm <vf(p, IDirectInputDevice7, Acquire)>
	endm
IDirectInputDevice7_Unacquire macro p
	exitm <vf(p, IDirectInputDevice7, Unacquire)>
	endm
IDirectInputDevice7_GetDeviceState macro p,a,b
	exitm <vf(p, IDirectInputDevice7, GetDeviceState), a , b >
	endm
IDirectInputDevice7_GetDeviceData macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice7, GetDeviceData), a , b , c , d >
	endm
IDirectInputDevice7_SetDataFormat macro p,a
	exitm <vf(p, IDirectInputDevice7, SetDataFormat), a >
	endm
IDirectInputDevice7_SetEventNotification macro p,a
	exitm <vf(p, IDirectInputDevice7, SetEventNotification), a >
	endm
IDirectInputDevice7_SetCooperativeLevel macro p,a,b
	exitm <vf(p, IDirectInputDevice7, SetCooperativeLevel), a , b >
	endm
IDirectInputDevice7_GetObjectInfo macro p,a,b,c
	exitm <vf(p, IDirectInputDevice7, GetObjectInfo), a , b , c >
	endm
IDirectInputDevice7_GetDeviceInfo macro p,a
	exitm <vf(p, IDirectInputDevice7, GetDeviceInfo), a >
	endm
IDirectInputDevice7_RunControlPanel macro p,a,b
	exitm <vf(p, IDirectInputDevice7, RunControlPanel), a , b >
	endm
IDirectInputDevice7_Initialize macro p,a,b,c
	exitm <vf(p, IDirectInputDevice7, Initialize), a , b , c >
	endm
IDirectInputDevice7_CreateEffect macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice7, CreateEffect), a , b , c , d >
	endm
IDirectInputDevice7_EnumEffects macro p,a,b,c
	exitm <vf(p, IDirectInputDevice7, EnumEffects), a , b , c >
	endm
IDirectInputDevice7_GetEffectInfo macro p,a,b
	exitm <vf(p, IDirectInputDevice7, GetEffectInfo), a , b >
	endm
IDirectInputDevice7_GetForceFeedbackState macro p,a
	exitm <vf(p, IDirectInputDevice7, GetForceFeedbackState), a >
	endm
IDirectInputDevice7_SendForceFeedbackCommand macro p,a
	exitm <vf(p, IDirectInputDevice7, SendForceFeedbackCommand), a >
	endm
IDirectInputDevice7_EnumCreatedEffectObjects macro p,a,b,c
	exitm <vf(p, IDirectInputDevice7, EnumCreatedEffectObjects), a , b , c >
	endm
IDirectInputDevice7_Escape macro p,a
	exitm <vf(p, IDirectInputDevice7, Escape_), a >
	endm
IDirectInputDevice7_Poll macro p
	exitm <vf(p, IDirectInputDevice7, Poll)>
	endm
IDirectInputDevice7_SendDeviceData macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice7, SendDeviceData), a , b , c , d >
	endm
IDirectInputDevice7_EnumEffectsInFile macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice7, EnumEffectsInFile), a , b , c , d >
	endm
IDirectInputDevice7_WriteEffectToFile macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice7, WriteEffectToFile), a , b , c , d >
	endm
else 
IDirectInputDevice7_QueryInterface macro p,a,b
	exitm <( p ) -> QueryInterface ( a , b ) >
	endm
IDirectInputDevice7_AddRef macro p
	exitm <( p ) -> AddRef ( ) >
	endm
IDirectInputDevice7_Release macro p
	exitm <( p ) -> Release ( ) >
	endm
IDirectInputDevice7_GetCapabilities macro p,a
	exitm <( p ) -> GetCapabilities ( a ) >
	endm
IDirectInputDevice7_EnumObjects macro p,a,b,c
	exitm <( p ) -> EnumObjects ( a , b , c ) >
	endm
IDirectInputDevice7_GetProperty macro p,a,b
	exitm <( p ) -> GetProperty ( a , b ) >
	endm
IDirectInputDevice7_SetProperty macro p,a,b
	exitm <( p ) -> SetProperty ( a , b ) >
	endm
IDirectInputDevice7_Acquire macro p
	exitm <( p ) -> Acquire ( ) >
	endm
IDirectInputDevice7_Unacquire macro p
	exitm <( p ) -> Unacquire ( ) >
	endm
IDirectInputDevice7_GetDeviceState macro p,a,b
	exitm <( p ) -> GetDeviceState ( a , b ) >
	endm
IDirectInputDevice7_GetDeviceData macro p,a,b,c,d
	exitm <( p ) -> GetDeviceData ( a , b , c , d ) >
	endm
IDirectInputDevice7_SetDataFormat macro p,a
	exitm <( p ) -> SetDataFormat ( a ) >
	endm
IDirectInputDevice7_SetEventNotification macro p,a
	exitm <( p ) -> SetEventNotification ( a ) >
	endm
IDirectInputDevice7_SetCooperativeLevel macro p,a,b
	exitm <( p ) -> SetCooperativeLevel ( a , b ) >
	endm
IDirectInputDevice7_GetObjectInfo macro p,a,b,c
	exitm <( p ) -> GetObjectInfo ( a , b , c ) >
	endm
IDirectInputDevice7_GetDeviceInfo macro p,a
	exitm <( p ) -> GetDeviceInfo ( a ) >
	endm
IDirectInputDevice7_RunControlPanel macro p,a,b
	exitm <( p ) -> RunControlPanel ( a , b ) >
	endm
IDirectInputDevice7_Initialize macro p,a,b,c
	exitm <( p ) -> Initialize ( a , b , c ) >
	endm
IDirectInputDevice7_CreateEffect macro p,a,b,c,d
	exitm <( p ) -> CreateEffect ( a , b , c , d ) >
	endm
IDirectInputDevice7_EnumEffects macro p,a,b,c
	exitm <( p ) -> EnumEffects ( a , b , c ) >
	endm
IDirectInputDevice7_GetEffectInfo macro p,a,b
	exitm <( p ) -> GetEffectInfo ( a , b ) >
	endm
IDirectInputDevice7_GetForceFeedbackState macro p,a
	exitm <( p ) -> GetForceFeedbackState ( a ) >
	endm
IDirectInputDevice7_SendForceFeedbackCommand macro p,a
	exitm <( p ) -> SendForceFeedbackCommand ( a ) >
	endm
IDirectInputDevice7_EnumCreatedEffectObjects macro p,a,b,c
	exitm <( p ) -> EnumCreatedEffectObjects ( a , b , c ) >
	endm
IDirectInputDevice7_Escape macro p,a
	exitm <( p ) -> Escape ( a ) >
	endm
IDirectInputDevice7_Poll macro p
	exitm <( p ) -> Poll ( ) >
	endm
IDirectInputDevice7_SendDeviceData macro p,a,b,c,d
	exitm <( p ) -> SendDeviceData ( a , b , c , d ) >
	endm
IDirectInputDevice7_EnumEffectsInFile macro p,a,b,c,d
	exitm <( p ) -> EnumEffectsInFile ( a , b , c , d ) >
	endm
IDirectInputDevice7_WriteEffectToFile macro p,a,b,c,d
	exitm <( p ) -> WriteEffectToFile ( a , b , c , d ) >
	endm
endif 
endif 
endif 
if (DIRECTINPUT_VERSION ge 0800h)
ifndef DIJ_RINGZERO
;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputDevice8W>
DECLARE_INTERFACE_( IDirectInputDevice8W , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetCapabilities , :LPDIDEVCAPS
STDMETHOD  EnumObjects_ , :LPDIENUMDEVICEOBJECTSCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetProperty , :REFGUID, :LPDIPROPHEADER
STDMETHOD  SetProperty , :REFGUID, :LPCDIPROPHEADER
STDMETHOD  Acquire 
STDMETHOD  Unacquire 
STDMETHOD  GetDeviceState , :DWORD, :LPVOID
STDMETHOD  GetDeviceData , :DWORD, :LPDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  SetDataFormat , :LPCDIDATAFORMAT
STDMETHOD  SetEventNotification , :HANDLE
STDMETHOD  SetCooperativeLevel , :HWND, :DWORD
STDMETHOD  GetObjectInfo , :LPDIDEVICEOBJECTINSTANCEW, :DWORD, :DWORD
STDMETHOD  GetDeviceInfo , :LPDIDEVICEINSTANCEW
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD, :REFGUID
STDMETHOD  CreateEffect , :REFGUID, :LPCDIEFFECT, :ptr LPDIRECTINPUTEFFECT, :LPUNKNOWN
STDMETHOD  EnumEffects , :LPDIENUMEFFECTSCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetEffectInfo , :LPDIEFFECTINFOW, :REFGUID
STDMETHOD  GetForceFeedbackState , :LPDWORD
STDMETHOD  SendForceFeedbackCommand , :DWORD
STDMETHOD  EnumCreatedEffectObjects , :LPDIENUMCREATEDEFFECTOBJECTSCALLBACK, :LPVOID, :DWORD
STDMETHOD  Escape_ , :LPDIEFFESCAPE
STDMETHOD  Poll 
STDMETHOD  SendDeviceData , :DWORD, :LPCDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  EnumEffectsInFile , :LPWSTR, :LPDIENUMEFFECTSINFILECALLBACK, :LPVOID, :DWORD
STDMETHOD  WriteEffectToFile , :LPWSTR, :DWORD, :LPDIFILEEFFECT, :DWORD
STDMETHOD  BuildActionMap , :LPDIACTIONFORMATW, :LPWSTR, :DWORD
STDMETHOD  SetActionMap , :LPDIACTIONFORMATW, :LPWSTR, :DWORD
STDMETHOD  GetImageInfo , :LPDIDEVICEIMAGEINFOHEADERW
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTDEVICE8W typedef ptr IDirectInputDevice8W

;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputDevice8A>
DECLARE_INTERFACE_( IDirectInputDevice8A , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetCapabilities , :LPDIDEVCAPS
STDMETHOD  EnumObjects_ , :LPDIENUMDEVICEOBJECTSCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetProperty , :REFGUID, :LPDIPROPHEADER
STDMETHOD  SetProperty , :REFGUID, :LPCDIPROPHEADER
STDMETHOD  Acquire 
STDMETHOD  Unacquire 
STDMETHOD  GetDeviceState , :DWORD, :LPVOID
STDMETHOD  GetDeviceData , :DWORD, :LPDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  SetDataFormat , :LPCDIDATAFORMAT
STDMETHOD  SetEventNotification , :HANDLE
STDMETHOD  SetCooperativeLevel , :HWND, :DWORD
STDMETHOD  GetObjectInfo , :LPDIDEVICEOBJECTINSTANCEA, :DWORD, :DWORD
STDMETHOD  GetDeviceInfo , :LPDIDEVICEINSTANCEA
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD, :REFGUID
STDMETHOD  CreateEffect , :REFGUID, :LPCDIEFFECT, :ptr LPDIRECTINPUTEFFECT, :LPUNKNOWN
STDMETHOD  EnumEffects , :LPDIENUMEFFECTSCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetEffectInfo , :LPDIEFFECTINFOA, :REFGUID
STDMETHOD  GetForceFeedbackState , :LPDWORD
STDMETHOD  SendForceFeedbackCommand , :DWORD
STDMETHOD  EnumCreatedEffectObjects , :LPDIENUMCREATEDEFFECTOBJECTSCALLBACK, :LPVOID, :DWORD
STDMETHOD  Escape_ , :LPDIEFFESCAPE
STDMETHOD  Poll 
STDMETHOD  SendDeviceData , :DWORD, :LPCDIDEVICEOBJECTDATA, :LPDWORD, :DWORD
STDMETHOD  EnumEffectsInFile , :LPSTR, :LPDIENUMEFFECTSINFILECALLBACK, :LPVOID, :DWORD
STDMETHOD  WriteEffectToFile , :LPSTR, :DWORD, :LPDIFILEEFFECT, :DWORD
STDMETHOD  BuildActionMap , :LPDIACTIONFORMATA, :LPSTR, :DWORD
STDMETHOD  SetActionMap , :LPDIACTIONFORMATA, :LPSTR, :DWORD
STDMETHOD  GetImageInfo , :LPDIDEVICEIMAGEINFOHEADERA
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTDEVICE8A typedef ptr IDirectInputDevice8A

ifdef UNICODE
IID_IDirectInputDevice8	EQU	<IID_IDirectInputDevice8W>
IDirectInputDevice8	EQU	<IDirectInputDevice8W>
IDirectInputDevice8Vtbl	EQU	<IDirectInputDevice8WVtbl>
else 
IID_IDirectInputDevice8	EQU	<IID_IDirectInputDevice8A>
IDirectInputDevice8	EQU	<IDirectInputDevice8A>
IDirectInputDevice8Vtbl	EQU	<IDirectInputDevice8AVtbl>
endif 
LPDIRECTINPUTDEVICE8 typedef ptr IDirectInputDevice8

if  NOT defined(__cplusplus) OR defined(CINTERFACE)
IDirectInputDevice8_QueryInterface macro p,a,b
	exitm <vf(p, IDirectInputDevice8, QueryInterface), a , b >
	endm
IDirectInputDevice8_AddRef macro p
	exitm <vf(p, IDirectInputDevice8, AddRef)>
	endm
IDirectInputDevice8_Release macro p
	exitm <vf(p, IDirectInputDevice8, Release)>
	endm
IDirectInputDevice8_GetCapabilities macro p,a
	exitm <vf(p, IDirectInputDevice8, GetCapabilities), a >
	endm
IDirectInputDevice8_EnumObjects macro p,a,b,c
	exitm <vf(p, IDirectInputDevice8, EnumObjects_), a , b , c >
	endm
IDirectInputDevice8_GetProperty macro p,a,b
	exitm <vf(p, IDirectInputDevice8, GetProperty), a , b >
	endm
IDirectInputDevice8_SetProperty macro p,a,b
	exitm <vf(p, IDirectInputDevice8, SetProperty), a , b >
	endm
IDirectInputDevice8_Acquire macro p
	exitm <vf(p, IDirectInputDevice8, Acquire)>
	endm
IDirectInputDevice8_Unacquire macro p
	exitm <vf(p, IDirectInputDevice8, Unacquire)>
	endm
IDirectInputDevice8_GetDeviceState macro p,a,b
	exitm <vf(p, IDirectInputDevice8, GetDeviceState), a , b >
	endm
IDirectInputDevice8_GetDeviceData macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice8, GetDeviceData), a , b , c , d >
	endm
IDirectInputDevice8_SetDataFormat macro p,a
	exitm <vf(p, IDirectInputDevice8, SetDataFormat), a >
	endm
IDirectInputDevice8_SetEventNotification macro p,a
	exitm <vf(p, IDirectInputDevice8, SetEventNotification), a >
	endm
IDirectInputDevice8_SetCooperativeLevel macro p,a,b
	exitm <vf(p, IDirectInputDevice8, SetCooperativeLevel), a , b >
	endm
IDirectInputDevice8_GetObjectInfo macro p,a,b,c
	exitm <vf(p, IDirectInputDevice8, GetObjectInfo), a , b , c >
	endm
IDirectInputDevice8_GetDeviceInfo macro p,a
	exitm <vf(p, IDirectInputDevice8, GetDeviceInfo), a >
	endm
IDirectInputDevice8_RunControlPanel macro p,a,b
	exitm <vf(p, IDirectInputDevice8, RunControlPanel), a , b >
	endm
IDirectInputDevice8_Initialize macro p,a,b,c
	exitm <vf(p, IDirectInputDevice8, Initialize), a , b , c >
	endm
IDirectInputDevice8_CreateEffect macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice8, CreateEffect), a , b , c , d >
	endm
IDirectInputDevice8_EnumEffects macro p,a,b,c
	exitm <vf(p, IDirectInputDevice8, EnumEffects), a , b , c >
	endm
IDirectInputDevice8_GetEffectInfo macro p,a,b
	exitm <vf(p, IDirectInputDevice8, GetEffectInfo), a , b >
	endm
IDirectInputDevice8_GetForceFeedbackState macro p,a
	exitm <vf(p, IDirectInputDevice8, GetForceFeedbackState), a >
	endm
IDirectInputDevice8_SendForceFeedbackCommand macro p,a
	exitm <vf(p, IDirectInputDevice8, SendForceFeedbackCommand), a >
	endm
IDirectInputDevice8_EnumCreatedEffectObjects macro p,a,b,c
	exitm <vf(p, IDirectInputDevice8, EnumCreatedEffectObjects), a , b , c >
	endm
IDirectInputDevice8_Escape macro p,a
	exitm <vf(p, IDirectInputDevice8, Escape_), a >
	endm
IDirectInputDevice8_Poll macro p
	exitm <vf(p, IDirectInputDevice8, Poll)>
	endm
IDirectInputDevice8_SendDeviceData macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice8, SendDeviceData), a , b , c , d >
	endm
IDirectInputDevice8_EnumEffectsInFile macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice8, EnumEffectsInFile), a , b , c , d >
	endm
IDirectInputDevice8_WriteEffectToFile macro p,a,b,c,d
	exitm <vf(p, IDirectInputDevice8, WriteEffectToFile), a , b , c , d >
	endm
IDirectInputDevice8_BuildActionMap macro p,a,b,c
	exitm <vf(p, IDirectInputDevice8, BuildActionMap), a , b , c >
	endm
IDirectInputDevice8_SetActionMap macro p,a,b,c
	exitm <vf(p, IDirectInputDevice8, SetActionMap), a , b , c >
	endm
IDirectInputDevice8_GetImageInfo macro p,a
	exitm <vf(p, IDirectInputDevice8, GetImageInfo), a >
	endm
else 
IDirectInputDevice8_QueryInterface macro p,a,b
	exitm <( p ) -> QueryInterface ( a , b ) >
	endm
IDirectInputDevice8_AddRef macro p
	exitm <( p ) -> AddRef ( ) >
	endm
IDirectInputDevice8_Release macro p
	exitm <( p ) -> Release ( ) >
	endm
IDirectInputDevice8_GetCapabilities macro p,a
	exitm <( p ) -> GetCapabilities ( a ) >
	endm
IDirectInputDevice8_EnumObjects macro p,a,b,c
	exitm <( p ) -> EnumObjects ( a , b , c ) >
	endm
IDirectInputDevice8_GetProperty macro p,a,b
	exitm <( p ) -> GetProperty ( a , b ) >
	endm
IDirectInputDevice8_SetProperty macro p,a,b
	exitm <( p ) -> SetProperty ( a , b ) >
	endm
IDirectInputDevice8_Acquire macro p
	exitm <( p ) -> Acquire ( ) >
	endm
IDirectInputDevice8_Unacquire macro p
	exitm <( p ) -> Unacquire ( ) >
	endm
IDirectInputDevice8_GetDeviceState macro p,a,b
	exitm <( p ) -> GetDeviceState ( a , b ) >
	endm
IDirectInputDevice8_GetDeviceData macro p,a,b,c,d
	exitm <( p ) -> GetDeviceData ( a , b , c , d ) >
	endm
IDirectInputDevice8_SetDataFormat macro p,a
	exitm <( p ) -> SetDataFormat ( a ) >
	endm
IDirectInputDevice8_SetEventNotification macro p,a
	exitm <( p ) -> SetEventNotification ( a ) >
	endm
IDirectInputDevice8_SetCooperativeLevel macro p,a,b
	exitm <( p ) -> SetCooperativeLevel ( a , b ) >
	endm
IDirectInputDevice8_GetObjectInfo macro p,a,b,c
	exitm <( p ) -> GetObjectInfo ( a , b , c ) >
	endm
IDirectInputDevice8_GetDeviceInfo macro p,a
	exitm <( p ) -> GetDeviceInfo ( a ) >
	endm
IDirectInputDevice8_RunControlPanel macro p,a,b
	exitm <( p ) -> RunControlPanel ( a , b ) >
	endm
IDirectInputDevice8_Initialize macro p,a,b,c
	exitm <( p ) -> Initialize ( a , b , c ) >
	endm
IDirectInputDevice8_CreateEffect macro p,a,b,c,d
	exitm <( p ) -> CreateEffect ( a , b , c , d ) >
	endm
IDirectInputDevice8_EnumEffects macro p,a,b,c
	exitm <( p ) -> EnumEffects ( a , b , c ) >
	endm
IDirectInputDevice8_GetEffectInfo macro p,a,b
	exitm <( p ) -> GetEffectInfo ( a , b ) >
	endm
IDirectInputDevice8_GetForceFeedbackState macro p,a
	exitm <( p ) -> GetForceFeedbackState ( a ) >
	endm
IDirectInputDevice8_SendForceFeedbackCommand macro p,a
	exitm <( p ) -> SendForceFeedbackCommand ( a ) >
	endm
IDirectInputDevice8_EnumCreatedEffectObjects macro p,a,b,c
	exitm <( p ) -> EnumCreatedEffectObjects ( a , b , c ) >
	endm
IDirectInputDevice8_Escape macro p,a
	exitm <( p ) -> Escape ( a ) >
	endm
IDirectInputDevice8_Poll macro p
	exitm <( p ) -> Poll ( ) >
	endm
IDirectInputDevice8_SendDeviceData macro p,a,b,c,d
	exitm <( p ) -> SendDeviceData ( a , b , c , d ) >
	endm
IDirectInputDevice8_EnumEffectsInFile macro p,a,b,c,d
	exitm <( p ) -> EnumEffectsInFile ( a , b , c , d ) >
	endm
IDirectInputDevice8_WriteEffectToFile macro p,a,b,c,d
	exitm <( p ) -> WriteEffectToFile ( a , b , c , d ) >
	endm
IDirectInputDevice8_BuildActionMap macro p,a,b,c
	exitm <( p ) -> BuildActionMap ( a , b , c ) >
	endm
IDirectInputDevice8_SetActionMap macro p,a,b,c
	exitm <( p ) -> SetActionMap ( a , b , c ) >
	endm
IDirectInputDevice8_GetImageInfo macro p,a
	exitm <( p ) -> GetImageInfo ( a ) >
	endm
endif 
endif 
endif 
ifndef DIJ_RINGZERO
DIMOUSESTATE	struct
lX	SDWORD	?
lY	SDWORD	?
lZ	SDWORD	?
rgbButtons	BYTE 4 dup (?)
DIMOUSESTATE	ends

LPDIMOUSESTATE typedef ptr DIMOUSESTATE

if DIRECTINPUT_VERSION ge 0700h
DIMOUSESTATE2	struct
lX	SDWORD	?
lY	SDWORD	?
lZ	SDWORD	?
rgbButtons	BYTE 8 dup (?)
DIMOUSESTATE2	ends

LPDIMOUSESTATE2 typedef ptr DIMOUSESTATE2

endif 
DIMOFS_X	EQU	<FIELD_OFFSET ( DIMOUSESTATE , lX )>
DIMOFS_Y	EQU	<FIELD_OFFSET ( DIMOUSESTATE , lY )>
DIMOFS_Z	EQU	<FIELD_OFFSET ( DIMOUSESTATE , lZ )>
DIMOFS_BUTTON0	EQU	( FIELD_OFFSET ( DIMOUSESTATE , rgbButtons ) + 0 )
DIMOFS_BUTTON1	EQU	( FIELD_OFFSET ( DIMOUSESTATE , rgbButtons ) + 1 )
DIMOFS_BUTTON2	EQU	( FIELD_OFFSET ( DIMOUSESTATE , rgbButtons ) + 2 )
DIMOFS_BUTTON3	EQU	( FIELD_OFFSET ( DIMOUSESTATE , rgbButtons ) + 3 )
if (DIRECTINPUT_VERSION ge 0700h)
DIMOFS_BUTTON4	EQU	( FIELD_OFFSET ( DIMOUSESTATE2 , rgbButtons ) + 4 )
DIMOFS_BUTTON5	EQU	( FIELD_OFFSET ( DIMOUSESTATE2 , rgbButtons ) + 5 )
DIMOFS_BUTTON6	EQU	( FIELD_OFFSET ( DIMOUSESTATE2 , rgbButtons ) + 6 )
DIMOFS_BUTTON7	EQU	( FIELD_OFFSET ( DIMOUSESTATE2 , rgbButtons ) + 7 )
endif 
endif 
ifndef DIJ_RINGZERO
DIK_ESCAPE	EQU	01h
DIK_1	EQU	02h
DIK_2	EQU	03h
DIK_3	EQU	04h
DIK_4	EQU	05h
DIK_5	EQU	06h
DIK_6	EQU	07h
DIK_7	EQU	08h
DIK_8	EQU	09h
DIK_9	EQU	0Ah
DIK_0	EQU	0Bh
DIK_MINUS	EQU	0Ch
DIK_EQUALS	EQU	0Dh
DIK_BACK	EQU	0Eh
DIK_TAB	EQU	0Fh
DIK_Q	EQU	10h
DIK_W	EQU	11h
DIK_E	EQU	12h
DIK_R	EQU	13h
DIK_T	EQU	14h
DIK_Y	EQU	15h
DIK_U	EQU	16h
DIK_I	EQU	17h
DIK_O	EQU	18h
DIK_P	EQU	19h
DIK_LBRACKET	EQU	1Ah
DIK_RBRACKET	EQU	1Bh
DIK_RETURN	EQU	1Ch
DIK_LCONTROL	EQU	1Dh
DIK_A	EQU	1Eh
DIK_S	EQU	1Fh
DIK_D	EQU	20h
DIK_F	EQU	21h
DIK_G	EQU	22h
DIK_H	EQU	23h
DIK_J	EQU	24h
DIK_K	EQU	25h
DIK_L	EQU	26h
DIK_SEMICOLON	EQU	27h
DIK_APOSTROPHE	EQU	28h
DIK_GRAVE	EQU	29h
DIK_LSHIFT	EQU	2Ah
DIK_BACKSLASH	EQU	2Bh
DIK_Z	EQU	2Ch
DIK_X	EQU	2Dh
DIK_C	EQU	2Eh
DIK_V	EQU	2Fh
DIK_B	EQU	30h
DIK_N	EQU	31h
DIK_M	EQU	32h
DIK_COMMA	EQU	33h
DIK_PERIOD	EQU	34h
DIK_SLASH	EQU	35h
DIK_RSHIFT	EQU	36h
DIK_MULTIPLY	EQU	37h
DIK_LMENU	EQU	38h
DIK_SPACE	EQU	39h
DIK_CAPITAL	EQU	3Ah
DIK_F1	EQU	3Bh
DIK_F2	EQU	3Ch
DIK_F3	EQU	3Dh
DIK_F4	EQU	3Eh
DIK_F5	EQU	3Fh
DIK_F6	EQU	40h
DIK_F7	EQU	41h
DIK_F8	EQU	42h
DIK_F9	EQU	43h
DIK_F10	EQU	44h
DIK_NUMLOCK	EQU	45h
DIK_SCROLL	EQU	46h
DIK_NUMPAD7	EQU	47h
DIK_NUMPAD8	EQU	48h
DIK_NUMPAD9	EQU	49h
DIK_SUBTRACT	EQU	4Ah
DIK_NUMPAD4	EQU	4Bh
DIK_NUMPAD5	EQU	4Ch
DIK_NUMPAD6	EQU	4Dh
DIK_ADD	EQU	4Eh
DIK_NUMPAD1	EQU	4Fh
DIK_NUMPAD2	EQU	50h
DIK_NUMPAD3	EQU	51h
DIK_NUMPAD0	EQU	52h
DIK_DECIMAL	EQU	53h
DIK_OEM_102	EQU	56h
DIK_F11	EQU	57h
DIK_F12	EQU	58h
DIK_F13	EQU	64h
DIK_F14	EQU	65h
DIK_F15	EQU	66h
DIK_KANA	EQU	70h
DIK_ABNT_C1	EQU	73h
DIK_CONVERT	EQU	79h
DIK_NOCONVERT	EQU	7Bh
DIK_YEN	EQU	7Dh
DIK_ABNT_C2	EQU	7Eh
DIK_NUMPADEQUALS	EQU	8Dh
DIK_PREVTRACK	EQU	90h
DIK_AT	EQU	91h
DIK_COLON	EQU	92h
DIK_UNDERLINE	EQU	93h
DIK_KANJI	EQU	94h
DIK_STOP	EQU	95h
DIK_AX	EQU	96h
DIK_UNLABELED	EQU	97h
DIK_NEXTTRACK	EQU	99h
DIK_NUMPADENTER	EQU	9Ch
DIK_RCONTROL	EQU	9Dh
DIK_MUTE	EQU	0A0h
DIK_CALCULATOR	EQU	0A1h
DIK_PLAYPAUSE	EQU	0A2h
DIK_MEDIASTOP	EQU	0A4h
DIK_VOLUMEDOWN	EQU	0AEh
DIK_VOLUMEUP	EQU	0B0h
DIK_WEBHOME	EQU	0B2h
DIK_NUMPADCOMMA	EQU	0B3h
DIK_DIVIDE	EQU	0B5h
DIK_SYSRQ	EQU	0B7h
DIK_RMENU	EQU	0B8h
DIK_PAUSE	EQU	0C5h
DIK_HOME	EQU	0C7h
DIK_UP	EQU	0C8h
DIK_PRIOR	EQU	0C9h
DIK_LEFT	EQU	0CBh
DIK_RIGHT	EQU	0CDh
DIK_END	EQU	0CFh
DIK_DOWN	EQU	0D0h
DIK_NEXT	EQU	0D1h
DIK_INSERT	EQU	0D2h
DIK_DELETE	EQU	0D3h
DIK_LWIN	EQU	0DBh
DIK_RWIN	EQU	0DCh
DIK_APPS	EQU	0DDh
DIK_POWER	EQU	0DEh
DIK_SLEEP	EQU	0DFh
DIK_WAKE	EQU	0E3h
DIK_WEBSEARCH	EQU	0E5h
DIK_WEBFAVORITES	EQU	0E6h
DIK_WEBREFRESH	EQU	0E7h
DIK_WEBSTOP	EQU	0E8h
DIK_WEBFORWARD	EQU	0E9h
DIK_WEBBACK	EQU	0EAh
DIK_MYCOMPUTER	EQU	0EBh
DIK_MAIL	EQU	0ECh
DIK_MEDIASELECT	EQU	0EDh
DIK_BACKSPACE	EQU	<DIK_BACK>
DIK_NUMPADSTAR	EQU	<DIK_MULTIPLY>
DIK_LALT	EQU	<DIK_LMENU>
DIK_CAPSLOCK	EQU	<DIK_CAPITAL>
DIK_NUMPADMINUS	EQU	<DIK_SUBTRACT>
DIK_NUMPADPLUS	EQU	<DIK_ADD>
DIK_NUMPADPERIOD	EQU	<DIK_DECIMAL>
DIK_NUMPADSLASH	EQU	<DIK_DIVIDE>
DIK_RALT	EQU	<DIK_RMENU>
DIK_UPARROW	EQU	<DIK_UP>
DIK_PGUP	EQU	<DIK_PRIOR>
DIK_LEFTARROW	EQU	<DIK_LEFT>
DIK_RIGHTARROW	EQU	<DIK_RIGHT>
DIK_DOWNARROW	EQU	<DIK_DOWN>
DIK_PGDN	EQU	<DIK_NEXT>
DIK_CIRCUMFLEX	EQU	<DIK_PREVTRACK>
endif 
ifndef DIJ_RINGZERO
DIJOYSTATE	struct
lX	SDWORD	?
lY	SDWORD	?
lZ	SDWORD	?
lRx	SDWORD	?
lRy	SDWORD	?
lRz	SDWORD	?
rglSlider	SDWORD 2 dup (?)
rgdwPOV	DWORD 4 dup (?)
rgbButtons	BYTE 32 dup (?)
DIJOYSTATE	ends

LPDIJOYSTATE typedef ptr DIJOYSTATE

DIJOYSTATE2	struct
lX	SDWORD	?
lY	SDWORD	?
lZ	SDWORD	?
lRx	SDWORD	?
lRy	SDWORD	?
lRz	SDWORD	?
rglSlider	SDWORD 2 dup (?)
rgdwPOV	DWORD 4 dup (?)
rgbButtons	BYTE 128 dup (?)
lVX	SDWORD	?
lVY	SDWORD	?
lVZ	SDWORD	?
lVRx	SDWORD	?
lVRy	SDWORD	?
lVRz	SDWORD	?
rglVSlider	SDWORD 2 dup (?)
lAX	SDWORD	?
lAY	SDWORD	?
lAZ	SDWORD	?
lARx	SDWORD	?
lARy	SDWORD	?
lARz	SDWORD	?
rglASlider	SDWORD 2 dup (?)
lFX	SDWORD	?
lFY	SDWORD	?
lFZ	SDWORD	?
lFRx	SDWORD	?
lFRy	SDWORD	?
lFRz	SDWORD	?
rglFSlider	SDWORD 2 dup (?)
DIJOYSTATE2	ends

LPDIJOYSTATE2 typedef ptr DIJOYSTATE2

DIJOFS_X	EQU	<FIELD_OFFSET ( DIJOYSTATE , lX )>
DIJOFS_Y	EQU	<FIELD_OFFSET ( DIJOYSTATE , lY )>
DIJOFS_Z	EQU	<FIELD_OFFSET ( DIJOYSTATE , lZ )>
DIJOFS_RX	EQU	<FIELD_OFFSET ( DIJOYSTATE , lRx )>
DIJOFS_RY	EQU	<FIELD_OFFSET ( DIJOYSTATE , lRy )>
DIJOFS_RZ	EQU	<FIELD_OFFSET ( DIJOYSTATE , lRz )>
DIJOFS_SLIDER macro n
	exitm <( FIELD_OFFSET ( DIJOYSTATE , rglSlider ) + ( n ) * sizeof ( LONG ) ) >
	endm
DIJOFS_POV macro n
	exitm <( FIELD_OFFSET ( DIJOYSTATE , rgdwPOV ) + ( n ) * sizeof ( DWORD ) ) >
	endm
DIJOFS_BUTTON macro n
	exitm <( FIELD_OFFSET ( DIJOYSTATE , rgbButtons ) + ( n ) ) >
	endm
DIJOFS_BUTTON0	EQU	<DIJOFS_BUTTON ( 0 )>
DIJOFS_BUTTON1	EQU	<DIJOFS_BUTTON ( 1 )>
DIJOFS_BUTTON2	EQU	<DIJOFS_BUTTON ( 2 )>
DIJOFS_BUTTON3	EQU	<DIJOFS_BUTTON ( 3 )>
DIJOFS_BUTTON4	EQU	<DIJOFS_BUTTON ( 4 )>
DIJOFS_BUTTON5	EQU	<DIJOFS_BUTTON ( 5 )>
DIJOFS_BUTTON6	EQU	<DIJOFS_BUTTON ( 6 )>
DIJOFS_BUTTON7	EQU	<DIJOFS_BUTTON ( 7 )>
DIJOFS_BUTTON8	EQU	<DIJOFS_BUTTON ( 8 )>
DIJOFS_BUTTON9	EQU	<DIJOFS_BUTTON ( 9 )>
DIJOFS_BUTTON10	EQU	<DIJOFS_BUTTON ( 10 )>
DIJOFS_BUTTON11	EQU	<DIJOFS_BUTTON ( 11 )>
DIJOFS_BUTTON12	EQU	<DIJOFS_BUTTON ( 12 )>
DIJOFS_BUTTON13	EQU	<DIJOFS_BUTTON ( 13 )>
DIJOFS_BUTTON14	EQU	<DIJOFS_BUTTON ( 14 )>
DIJOFS_BUTTON15	EQU	<DIJOFS_BUTTON ( 15 )>
DIJOFS_BUTTON16	EQU	<DIJOFS_BUTTON ( 16 )>
DIJOFS_BUTTON17	EQU	<DIJOFS_BUTTON ( 17 )>
DIJOFS_BUTTON18	EQU	<DIJOFS_BUTTON ( 18 )>
DIJOFS_BUTTON19	EQU	<DIJOFS_BUTTON ( 19 )>
DIJOFS_BUTTON20	EQU	<DIJOFS_BUTTON ( 20 )>
DIJOFS_BUTTON21	EQU	<DIJOFS_BUTTON ( 21 )>
DIJOFS_BUTTON22	EQU	<DIJOFS_BUTTON ( 22 )>
DIJOFS_BUTTON23	EQU	<DIJOFS_BUTTON ( 23 )>
DIJOFS_BUTTON24	EQU	<DIJOFS_BUTTON ( 24 )>
DIJOFS_BUTTON25	EQU	<DIJOFS_BUTTON ( 25 )>
DIJOFS_BUTTON26	EQU	<DIJOFS_BUTTON ( 26 )>
DIJOFS_BUTTON27	EQU	<DIJOFS_BUTTON ( 27 )>
DIJOFS_BUTTON28	EQU	<DIJOFS_BUTTON ( 28 )>
DIJOFS_BUTTON29	EQU	<DIJOFS_BUTTON ( 29 )>
DIJOFS_BUTTON30	EQU	<DIJOFS_BUTTON ( 30 )>
DIJOFS_BUTTON31	EQU	<DIJOFS_BUTTON ( 31 )>
endif 
ifndef DIJ_RINGZERO
DIENUM_STOP	EQU	0
DIENUM_CONTINUE	EQU	1
proto_LPDIENUMDEVICESCALLBACKA typedef proto stdcall :LPCDIDEVICEINSTANCEA,:LPVOID
LPDIENUMDEVICESCALLBACKA typedef ptr proto_LPDIENUMDEVICESCALLBACKA
proto_LPDIENUMDEVICESCALLBACKW typedef proto stdcall :LPCDIDEVICEINSTANCEW,:LPVOID
LPDIENUMDEVICESCALLBACKW typedef ptr proto_LPDIENUMDEVICESCALLBACKW
ifdef UNICODE
LPDIENUMDEVICESCALLBACK	EQU	<LPDIENUMDEVICESCALLBACKW>
else 
LPDIENUMDEVICESCALLBACK	EQU	<LPDIENUMDEVICESCALLBACKA>
endif 
proto_LPDICONFIGUREDEVICESCALLBACK typedef proto stdcall :ptr IUnknown,:LPVOID
LPDICONFIGUREDEVICESCALLBACK typedef ptr proto_LPDICONFIGUREDEVICESCALLBACK
DIEDFL_ALLDEVICES	EQU	00000000h
DIEDFL_ATTACHEDONLY	EQU	00000001h
if (DIRECTINPUT_VERSION ge 0500h)
DIEDFL_FORCEFEEDBACK	EQU	00000100h
endif 
if (DIRECTINPUT_VERSION ge 050ah)
DIEDFL_INCLUDEALIASES	EQU	00010000h
DIEDFL_INCLUDEPHANTOMS	EQU	00020000h
endif 
if (DIRECTINPUT_VERSION ge 0800h)
DIEDFL_INCLUDEHIDDEN	EQU	00040000h
endif 
if (DIRECTINPUT_VERSION ge 0800h)
proto_LPDIENUMDEVICESBYSEMANTICSCBA typedef proto stdcall :LPCDIDEVICEINSTANCEA,:LPDIRECTINPUTDEVICE8A,:DWORD,:DWORD,:LPVOID
LPDIENUMDEVICESBYSEMANTICSCBA typedef ptr proto_LPDIENUMDEVICESBYSEMANTICSCBA
proto_LPDIENUMDEVICESBYSEMANTICSCBW typedef proto stdcall :LPCDIDEVICEINSTANCEW,:LPDIRECTINPUTDEVICE8W,:DWORD,:DWORD,:LPVOID
LPDIENUMDEVICESBYSEMANTICSCBW typedef ptr proto_LPDIENUMDEVICESBYSEMANTICSCBW
ifdef UNICODE
LPDIENUMDEVICESBYSEMANTICSCB	EQU	<LPDIENUMDEVICESBYSEMANTICSCBW>
else 
LPDIENUMDEVICESBYSEMANTICSCB	EQU	<LPDIENUMDEVICESBYSEMANTICSCBA>
endif 
endif 
if (DIRECTINPUT_VERSION ge 0800h)
DIEDBS_MAPPEDPRI1	EQU	00000001h
DIEDBS_MAPPEDPRI2	EQU	00000002h
DIEDBS_RECENTDEVICE	EQU	00000010h
DIEDBS_NEWDEVICE	EQU	00000020h
endif 
if (DIRECTINPUT_VERSION ge 0800h)
DIEDBSFL_ATTACHEDONLY	EQU	00000000h
DIEDBSFL_THISUSER	EQU	00000010h
DIEDBSFL_FORCEFEEDBACK	EQU	<DIEDFL_FORCEFEEDBACK>
DIEDBSFL_AVAILABLEDEVICES	EQU	00001000h
DIEDBSFL_MULTIMICEKEYBOARDS	EQU	00002000h
DIEDBSFL_NONGAMINGDEVICES	EQU	00004000h
DIEDBSFL_VALID	EQU	00007110h
endif 
;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputW>
DECLARE_INTERFACE_( IDirectInputW , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  CreateDevice , :REFGUID, :ptr LPDIRECTINPUTDEVICEW, :LPUNKNOWN
STDMETHOD  EnumDevices , :DWORD, :LPDIENUMDEVICESCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetDeviceStatus , :REFGUID
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTW typedef ptr IDirectInputW

;#undef INTERFACE 
INTERFACE	EQU	<IDirectInputA>
DECLARE_INTERFACE_( IDirectInputA , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  CreateDevice , :REFGUID, :ptr LPDIRECTINPUTDEVICEA, :LPUNKNOWN
STDMETHOD  EnumDevices , :DWORD, :LPDIENUMDEVICESCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetDeviceStatus , :REFGUID
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD
;}
DECLARE_INTERFACE__END

LPDIRECTINPUTA typedef ptr IDirectInputA

ifdef UNICODE
IID_IDirectInput	EQU	<IID_IDirectInputW>
IDirectInput	EQU	<IDirectInputW>
IDirectInputVtbl	EQU	<IDirectInputWVtbl>
else 
IID_IDirectInput	EQU	<IID_IDirectInputA>
IDirectInput	EQU	<IDirectInputA>
IDirectInputVtbl	EQU	<IDirectInputAVtbl>
endif 
LPDIRECTINPUT typedef ptr IDirectInput

if  NOT defined(__cplusplus) OR defined(CINTERFACE)
IDirectInput_QueryInterface macro p,a,b
	exitm <vf(p, IDirectInput, QueryInterface), a , b >
	endm
IDirectInput_AddRef macro p
	exitm <vf(p, IDirectInput, AddRef)>
	endm
IDirectInput_Release macro p
	exitm <vf(p, IDirectInput, Release)>
	endm
IDirectInput_CreateDevice macro p,a,b,c
	exitm <vf(p, IDirectInput, CreateDevice), a , b , c >
	endm
IDirectInput_EnumDevices macro p,a,b,c,d
	exitm <vf(p, IDirectInput, EnumDevices), a , b , c , d >
	endm
IDirectInput_GetDeviceStatus macro p,a
	exitm <vf(p, IDirectInput, GetDeviceStatus), a >
	endm
IDirectInput_RunControlPanel macro p,a,b
	exitm <vf(p, IDirectInput, RunControlPanel), a , b >
	endm
IDirectInput_Initialize macro p,a,b
	exitm <vf(p, IDirectInput, Initialize), a , b >
	endm
else 
IDirectInput_QueryInterface macro p,a,b
	exitm <( p ) -> QueryInterface ( a , b ) >
	endm
IDirectInput_AddRef macro p
	exitm <( p ) -> AddRef ( ) >
	endm
IDirectInput_Release macro p
	exitm <( p ) -> Release ( ) >
	endm
IDirectInput_CreateDevice macro p,a,b,c
	exitm <( p ) -> CreateDevice ( a , b , c ) >
	endm
IDirectInput_EnumDevices macro p,a,b,c,d
	exitm <( p ) -> EnumDevices ( a , b , c , d ) >
	endm
IDirectInput_GetDeviceStatus macro p,a
	exitm <( p ) -> GetDeviceStatus ( a ) >
	endm
IDirectInput_RunControlPanel macro p,a,b
	exitm <( p ) -> RunControlPanel ( a , b ) >
	endm
IDirectInput_Initialize macro p,a,b
	exitm <( p ) -> Initialize ( a , b ) >
	endm
endif 
;#undef INTERFACE 
INTERFACE	EQU	<IDirectInput2W>
DECLARE_INTERFACE_( IDirectInput2W , IDirectInputW)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  CreateDevice , :REFGUID, :ptr LPDIRECTINPUTDEVICEW, :LPUNKNOWN
STDMETHOD  EnumDevices , :DWORD, :LPDIENUMDEVICESCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetDeviceStatus , :REFGUID
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD
STDMETHOD  FindDevice , :REFGUID, :LPWSTR, :LPGUID
;}
DECLARE_INTERFACE__END

LPDIRECTINPUT2W typedef ptr IDirectInput2W

;#undef INTERFACE 
INTERFACE	EQU	<IDirectInput2A>
DECLARE_INTERFACE_( IDirectInput2A , IDirectInputA)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  CreateDevice , :REFGUID, :ptr LPDIRECTINPUTDEVICEA, :LPUNKNOWN
STDMETHOD  EnumDevices , :DWORD, :LPDIENUMDEVICESCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetDeviceStatus , :REFGUID
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD
STDMETHOD  FindDevice , :REFGUID, :LPSTR, :LPGUID
;}
DECLARE_INTERFACE__END

LPDIRECTINPUT2A typedef ptr IDirectInput2A

ifdef UNICODE
IID_IDirectInput2	EQU	<IID_IDirectInput2W>
IDirectInput2	EQU	<IDirectInput2W>
IDirectInput2Vtbl	EQU	<IDirectInput2WVtbl>
else 
IID_IDirectInput2	EQU	<IID_IDirectInput2A>
IDirectInput2	EQU	<IDirectInput2A>
IDirectInput2Vtbl	EQU	<IDirectInput2AVtbl>
endif 
LPDIRECTINPUT2 typedef ptr IDirectInput2

if  NOT defined(__cplusplus) OR defined(CINTERFACE)
IDirectInput2_QueryInterface macro p,a,b
	exitm <vf(p, IDirectInput2, QueryInterface), a , b >
	endm
IDirectInput2_AddRef macro p
	exitm <vf(p, IDirectInput2, AddRef)>
	endm
IDirectInput2_Release macro p
	exitm <vf(p, IDirectInput2, Release)>
	endm
IDirectInput2_CreateDevice macro p,a,b,c
	exitm <vf(p, IDirectInput2, CreateDevice), a , b , c >
	endm
IDirectInput2_EnumDevices macro p,a,b,c,d
	exitm <vf(p, IDirectInput2, EnumDevices), a , b , c , d >
	endm
IDirectInput2_GetDeviceStatus macro p,a
	exitm <vf(p, IDirectInput2, GetDeviceStatus), a >
	endm
IDirectInput2_RunControlPanel macro p,a,b
	exitm <vf(p, IDirectInput2, RunControlPanel), a , b >
	endm
IDirectInput2_Initialize macro p,a,b
	exitm <vf(p, IDirectInput2, Initialize), a , b >
	endm
IDirectInput2_FindDevice macro p,a,b,c
	exitm <vf(p, IDirectInput2, FindDevice), a , b , c >
	endm
else 
IDirectInput2_QueryInterface macro p,a,b
	exitm <( p ) -> QueryInterface ( a , b ) >
	endm
IDirectInput2_AddRef macro p
	exitm <( p ) -> AddRef ( ) >
	endm
IDirectInput2_Release macro p
	exitm <( p ) -> Release ( ) >
	endm
IDirectInput2_CreateDevice macro p,a,b,c
	exitm <( p ) -> CreateDevice ( a , b , c ) >
	endm
IDirectInput2_EnumDevices macro p,a,b,c,d
	exitm <( p ) -> EnumDevices ( a , b , c , d ) >
	endm
IDirectInput2_GetDeviceStatus macro p,a
	exitm <( p ) -> GetDeviceStatus ( a ) >
	endm
IDirectInput2_RunControlPanel macro p,a,b
	exitm <( p ) -> RunControlPanel ( a , b ) >
	endm
IDirectInput2_Initialize macro p,a,b
	exitm <( p ) -> Initialize ( a , b ) >
	endm
IDirectInput2_FindDevice macro p,a,b,c
	exitm <( p ) -> FindDevice ( a , b , c ) >
	endm
endif 
;#undef INTERFACE 
INTERFACE	EQU	<IDirectInput7W>
DECLARE_INTERFACE_( IDirectInput7W , IDirectInput2W)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  CreateDevice , :REFGUID, :ptr LPDIRECTINPUTDEVICEW, :LPUNKNOWN
STDMETHOD  EnumDevices , :DWORD, :LPDIENUMDEVICESCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetDeviceStatus , :REFGUID
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD
STDMETHOD  FindDevice , :REFGUID, :LPWSTR, :LPGUID
STDMETHOD  CreateDeviceEx , :REFGUID, :REFIID, :ptr LPVOID, :LPUNKNOWN
;}
DECLARE_INTERFACE__END

LPDIRECTINPUT7W typedef ptr IDirectInput7W

;#undef INTERFACE 
INTERFACE	EQU	<IDirectInput7A>
DECLARE_INTERFACE_( IDirectInput7A , IDirectInput2A)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  CreateDevice , :REFGUID, :ptr LPDIRECTINPUTDEVICEA, :LPUNKNOWN
STDMETHOD  EnumDevices , :DWORD, :LPDIENUMDEVICESCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetDeviceStatus , :REFGUID
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD
STDMETHOD  FindDevice , :REFGUID, :LPSTR, :LPGUID
STDMETHOD  CreateDeviceEx , :REFGUID, :REFIID, :ptr LPVOID, :LPUNKNOWN
;}
DECLARE_INTERFACE__END

LPDIRECTINPUT7A typedef ptr IDirectInput7A

ifdef UNICODE
IID_IDirectInput7	EQU	<IID_IDirectInput7W>
IDirectInput7	EQU	<IDirectInput7W>
IDirectInput7Vtbl	EQU	<IDirectInput7WVtbl>
else 
IID_IDirectInput7	EQU	<IID_IDirectInput7A>
IDirectInput7	EQU	<IDirectInput7A>
IDirectInput7Vtbl	EQU	<IDirectInput7AVtbl>
endif 
LPDIRECTINPUT7 typedef ptr IDirectInput7

if  NOT defined(__cplusplus) OR defined(CINTERFACE)
IDirectInput7_QueryInterface macro p,a,b
	exitm <vf(p, IDirectInput7, QueryInterface), a , b >
	endm
IDirectInput7_AddRef macro p
	exitm <vf(p, IDirectInput7, AddRef)>
	endm
IDirectInput7_Release macro p
	exitm <vf(p, IDirectInput7, Release)>
	endm
IDirectInput7_CreateDevice macro p,a,b,c
	exitm <vf(p, IDirectInput7, CreateDevice), a , b , c >
	endm
IDirectInput7_EnumDevices macro p,a,b,c,d
	exitm <vf(p, IDirectInput7, EnumDevices), a , b , c , d >
	endm
IDirectInput7_GetDeviceStatus macro p,a
	exitm <vf(p, IDirectInput7, GetDeviceStatus), a >
	endm
IDirectInput7_RunControlPanel macro p,a,b
	exitm <vf(p, IDirectInput7, RunControlPanel), a , b >
	endm
IDirectInput7_Initialize macro p,a,b
	exitm <vf(p, IDirectInput7, Initialize), a , b >
	endm
IDirectInput7_FindDevice macro p,a,b,c
	exitm <vf(p, IDirectInput7, FindDevice), a , b , c >
	endm
IDirectInput7_CreateDeviceEx macro p,a,b,c,d
	exitm <vf(p, IDirectInput7, CreateDeviceEx), a , b , c , d >
	endm
else 
IDirectInput7_QueryInterface macro p,a,b
	exitm <( p ) -> QueryInterface ( a , b ) >
	endm
IDirectInput7_AddRef macro p
	exitm <( p ) -> AddRef ( ) >
	endm
IDirectInput7_Release macro p
	exitm <( p ) -> Release ( ) >
	endm
IDirectInput7_CreateDevice macro p,a,b,c
	exitm <( p ) -> CreateDevice ( a , b , c ) >
	endm
IDirectInput7_EnumDevices macro p,a,b,c,d
	exitm <( p ) -> EnumDevices ( a , b , c , d ) >
	endm
IDirectInput7_GetDeviceStatus macro p,a
	exitm <( p ) -> GetDeviceStatus ( a ) >
	endm
IDirectInput7_RunControlPanel macro p,a,b
	exitm <( p ) -> RunControlPanel ( a , b ) >
	endm
IDirectInput7_Initialize macro p,a,b
	exitm <( p ) -> Initialize ( a , b ) >
	endm
IDirectInput7_FindDevice macro p,a,b,c
	exitm <( p ) -> FindDevice ( a , b , c ) >
	endm
IDirectInput7_CreateDeviceEx macro p,a,b,c,d
	exitm <( p ) -> CreateDeviceEx ( a , b , c , d ) >
	endm
endif 
if (DIRECTINPUT_VERSION ge 0800h)
;#undef INTERFACE 
INTERFACE	EQU	<IDirectInput8W>
DECLARE_INTERFACE_( IDirectInput8W , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  CreateDevice , :REFGUID, :ptr LPDIRECTINPUTDEVICE8W, :LPUNKNOWN
STDMETHOD  EnumDevices , :DWORD, :LPDIENUMDEVICESCALLBACKW, :LPVOID, :DWORD
STDMETHOD  GetDeviceStatus , :REFGUID
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD
STDMETHOD  FindDevice , :REFGUID, :LPWSTR, :LPGUID
STDMETHOD  EnumDevicesBySemantics , :LPWSTR, :LPDIACTIONFORMATW, :LPDIENUMDEVICESBYSEMANTICSCBW, :LPVOID, :DWORD
STDMETHOD  ConfigureDevices , :LPDICONFIGUREDEVICESCALLBACK, :LPDICONFIGUREDEVICESPARAMSW, :DWORD, :LPVOID
;}
DECLARE_INTERFACE__END

LPDIRECTINPUT8W typedef ptr IDirectInput8W

;#undef INTERFACE 
INTERFACE	EQU	<IDirectInput8A>
DECLARE_INTERFACE_( IDirectInput8A , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr LPVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  CreateDevice , :REFGUID, :ptr LPDIRECTINPUTDEVICE8A, :LPUNKNOWN
STDMETHOD  EnumDevices , :DWORD, :LPDIENUMDEVICESCALLBACKA, :LPVOID, :DWORD
STDMETHOD  GetDeviceStatus , :REFGUID
STDMETHOD  RunControlPanel , :HWND, :DWORD
STDMETHOD  Initialize , :HINSTANCE, :DWORD
STDMETHOD  FindDevice , :REFGUID, :LPSTR, :LPGUID
STDMETHOD  EnumDevicesBySemantics , :LPSTR, :LPDIACTIONFORMATA, :LPDIENUMDEVICESBYSEMANTICSCBA, :LPVOID, :DWORD
STDMETHOD  ConfigureDevices , :LPDICONFIGUREDEVICESCALLBACK, :LPDICONFIGUREDEVICESPARAMSA, :DWORD, :LPVOID
;}
DECLARE_INTERFACE__END

LPDIRECTINPUT8A typedef ptr IDirectInput8A

ifdef UNICODE
IID_IDirectInput8	EQU	<IID_IDirectInput8W>
IDirectInput8	EQU	<IDirectInput8W>
IDirectInput8Vtbl	EQU	<IDirectInput8WVtbl>
else 
IID_IDirectInput8	EQU	<IID_IDirectInput8A>
IDirectInput8	EQU	<IDirectInput8A>
IDirectInput8Vtbl	EQU	<IDirectInput8AVtbl>
endif 
LPDIRECTINPUT8 typedef ptr IDirectInput8

if  NOT defined(__cplusplus) OR defined(CINTERFACE)
IDirectInput8_QueryInterface macro p,a,b
	exitm <vf(p, IDirectInput8, QueryInterface), a , b >
	endm
IDirectInput8_AddRef macro p
	exitm <vf(p, IDirectInput8, AddRef)>
	endm
IDirectInput8_Release macro p
	exitm <vf(p, IDirectInput8, Release)>
	endm
IDirectInput8_CreateDevice macro p,a,b,c
	exitm <vf(p, IDirectInput8, CreateDevice), a , b , c >
	endm
IDirectInput8_EnumDevices macro p,a,b,c,d
	exitm <vf(p, IDirectInput8, EnumDevices), a , b , c , d >
	endm
IDirectInput8_GetDeviceStatus macro p,a
	exitm <vf(p, IDirectInput8, GetDeviceStatus), a >
	endm
IDirectInput8_RunControlPanel macro p,a,b
	exitm <vf(p, IDirectInput8, RunControlPanel), a , b >
	endm
IDirectInput8_Initialize macro p,a,b
	exitm <vf(p, IDirectInput8, Initialize), a , b >
	endm
IDirectInput8_FindDevice macro p,a,b,c
	exitm <vf(p, IDirectInput8, FindDevice), a , b , c >
	endm
IDirectInput8_EnumDevicesBySemantics macro p,a,b,c,d,e
	exitm <vf(p, IDirectInput8, EnumDevicesBySemantics), a , b , c , d , e >
	endm
IDirectInput8_ConfigureDevices macro p,a,b,c,d
	exitm <vf(p, IDirectInput8, ConfigureDevices), a , b , c , d >
	endm
else 
IDirectInput8_QueryInterface macro p,a,b
	exitm <( p ) -> QueryInterface ( a , b ) >
	endm
IDirectInput8_AddRef macro p
	exitm <( p ) -> AddRef ( ) >
	endm
IDirectInput8_Release macro p
	exitm <( p ) -> Release ( ) >
	endm
IDirectInput8_CreateDevice macro p,a,b,c
	exitm <( p ) -> CreateDevice ( a , b , c ) >
	endm
IDirectInput8_EnumDevices macro p,a,b,c,d
	exitm <( p ) -> EnumDevices ( a , b , c , d ) >
	endm
IDirectInput8_GetDeviceStatus macro p,a
	exitm <( p ) -> GetDeviceStatus ( a ) >
	endm
IDirectInput8_RunControlPanel macro p,a,b
	exitm <( p ) -> RunControlPanel ( a , b ) >
	endm
IDirectInput8_Initialize macro p,a,b
	exitm <( p ) -> Initialize ( a , b ) >
	endm
IDirectInput8_FindDevice macro p,a,b,c
	exitm <( p ) -> FindDevice ( a , b , c ) >
	endm
IDirectInput8_EnumDevicesBySemantics macro p,a,b,c,d,e
	exitm <( p ) -> EnumDevicesBySemantics ( a , b , c , d , e ) >
	endm
IDirectInput8_ConfigureDevices macro p,a,b,c,d
	exitm <( p ) -> ConfigureDevices ( a , b , c , d ) >
	endm
endif 
endif 
if DIRECTINPUT_VERSION gt 0700h
DirectInput8Create proto stdcall  :HINSTANCE, :DWORD, :REFIID, :ptr LPVOID, :LPUNKNOWN
else 
DirectInputCreateA proto stdcall  :HINSTANCE, :DWORD, :ptr LPDIRECTINPUTA, :LPUNKNOWN
DirectInputCreateW proto stdcall  :HINSTANCE, :DWORD, :ptr LPDIRECTINPUTW, :LPUNKNOWN
ifdef UNICODE
DirectInputCreate	EQU	<DirectInputCreateW>
else 
DirectInputCreate	EQU	<DirectInputCreateA>
endif 
DirectInputCreateEx proto stdcall  :HINSTANCE, :DWORD, :REFIID, :ptr LPVOID, :LPUNKNOWN
endif 
endif 
DI_OK	EQU	<S_OK>
DI_NOTATTACHED	EQU	<S_FALSE>
DI_BUFFEROVERFLOW	EQU	<S_FALSE>
DI_PROPNOEFFECT	EQU	<S_FALSE>
DI_NOEFFECT	EQU	<S_FALSE>
DI_POLLEDDEVICE	EQU	00000002h
DI_DOWNLOADSKIPPED	EQU	00000003h
DI_EFFECTRESTARTED	EQU	00000004h
DI_TRUNCATED	EQU	00000008h
DI_SETTINGSNOTSAVED	EQU	0000000Bh
DI_TRUNCATEDANDRESTARTED	EQU	0000000Ch
DI_WRITEPROTECT	EQU	00000013h
DIERR_OLDDIRECTINPUTVERSION	EQU	<MAKE_HRESULT ( SEVERITY_ERROR , FACILITY_WIN32 , ERROR_OLD_WIN_VERSION )>
DIERR_BETADIRECTINPUTVERSION	EQU	<MAKE_HRESULT ( SEVERITY_ERROR , FACILITY_WIN32 , ERROR_RMODE_APP )>
DIERR_BADDRIVERVER	EQU	<MAKE_HRESULT ( SEVERITY_ERROR , FACILITY_WIN32 , ERROR_BAD_DRIVER_LEVEL )>
DIERR_DEVICENOTREG	EQU	<REGDB_E_CLASSNOTREG>
DIERR_NOTFOUND	EQU	<MAKE_HRESULT ( SEVERITY_ERROR , FACILITY_WIN32 , ERROR_FILE_NOT_FOUND )>
DIERR_OBJECTNOTFOUND	EQU	<MAKE_HRESULT ( SEVERITY_ERROR , FACILITY_WIN32 , ERROR_FILE_NOT_FOUND )>
DIERR_INVALIDPARAM	EQU	<E_INVALIDARG>
DIERR_NOINTERFACE	EQU	<E_NOINTERFACE>
DIERR_GENERIC	EQU	<E_FAIL>
DIERR_OUTOFMEMORY	EQU	<E_OUTOFMEMORY>
DIERR_UNSUPPORTED	EQU	<E_NOTIMPL>
DIERR_NOTINITIALIZED	EQU	<MAKE_HRESULT ( SEVERITY_ERROR , FACILITY_WIN32 , ERROR_NOT_READY )>
DIERR_ALREADYINITIALIZED	EQU	<MAKE_HRESULT ( SEVERITY_ERROR , FACILITY_WIN32 , ERROR_ALREADY_INITIALIZED )>
DIERR_NOAGGREGATION	EQU	<CLASS_E_NOAGGREGATION>
DIERR_OTHERAPPHASPRIO	EQU	<E_ACCESSDENIED>
DIERR_INPUTLOST	EQU	<MAKE_HRESULT ( SEVERITY_ERROR , FACILITY_WIN32 , ERROR_READ_FAULT )>
DIERR_ACQUIRED	EQU	<MAKE_HRESULT ( SEVERITY_ERROR , FACILITY_WIN32 , ERROR_BUSY )>
DIERR_NOTACQUIRED	EQU	<MAKE_HRESULT ( SEVERITY_ERROR , FACILITY_WIN32 , ERROR_INVALID_ACCESS )>
DIERR_READONLY	EQU	<E_ACCESSDENIED>
DIERR_HANDLEEXISTS	EQU	<E_ACCESSDENIED>
ifndef E_PENDING
E_PENDING	EQU	8000000Ah
endif 
DIERR_INSUFFICIENTPRIVS	EQU	80040200h
DIERR_DEVICEFULL	EQU	80040201h
DIERR_MOREDATA	EQU	80040202h
DIERR_NOTDOWNLOADED	EQU	80040203h
DIERR_HASEFFECTS	EQU	80040204h
DIERR_NOTEXCLUSIVEACQUIRED	EQU	80040205h
DIERR_INCOMPLETEEFFECT	EQU	80040206h
DIERR_NOTBUFFERED	EQU	80040207h
DIERR_EFFECTPLAYING	EQU	80040208h
DIERR_UNPLUGGED	EQU	80040209h
DIERR_REPORTFULL	EQU	8004020Ah
DIERR_MAPFILEFAIL	EQU	8004020Bh
DIKEYBOARD_ESCAPE	EQU	81000401h
DIKEYBOARD_1	EQU	81000402h
DIKEYBOARD_2	EQU	81000403h
DIKEYBOARD_3	EQU	81000404h
DIKEYBOARD_4	EQU	81000405h
DIKEYBOARD_5	EQU	81000406h
DIKEYBOARD_6	EQU	81000407h
DIKEYBOARD_7	EQU	81000408h
DIKEYBOARD_8	EQU	81000409h
DIKEYBOARD_9	EQU	8100040Ah
DIKEYBOARD_0	EQU	8100040Bh
DIKEYBOARD_MINUS	EQU	8100040Ch
DIKEYBOARD_EQUALS	EQU	8100040Dh
DIKEYBOARD_BACK	EQU	8100040Eh
DIKEYBOARD_TAB	EQU	8100040Fh
DIKEYBOARD_Q	EQU	81000410h
DIKEYBOARD_W	EQU	81000411h
DIKEYBOARD_E	EQU	81000412h
DIKEYBOARD_R	EQU	81000413h
DIKEYBOARD_T	EQU	81000414h
DIKEYBOARD_Y	EQU	81000415h
DIKEYBOARD_U	EQU	81000416h
DIKEYBOARD_I	EQU	81000417h
DIKEYBOARD_O	EQU	81000418h
DIKEYBOARD_P	EQU	81000419h
DIKEYBOARD_LBRACKET	EQU	8100041Ah
DIKEYBOARD_RBRACKET	EQU	8100041Bh
DIKEYBOARD_RETURN	EQU	8100041Ch
DIKEYBOARD_LCONTROL	EQU	8100041Dh
DIKEYBOARD_A	EQU	8100041Eh
DIKEYBOARD_S	EQU	8100041Fh
DIKEYBOARD_D	EQU	81000420h
DIKEYBOARD_F	EQU	81000421h
DIKEYBOARD_G	EQU	81000422h
DIKEYBOARD_H	EQU	81000423h
DIKEYBOARD_J	EQU	81000424h
DIKEYBOARD_K	EQU	81000425h
DIKEYBOARD_L	EQU	81000426h
DIKEYBOARD_SEMICOLON	EQU	81000427h
DIKEYBOARD_APOSTROPHE	EQU	81000428h
DIKEYBOARD_GRAVE	EQU	81000429h
DIKEYBOARD_LSHIFT	EQU	8100042Ah
DIKEYBOARD_BACKSLASH	EQU	8100042Bh
DIKEYBOARD_Z	EQU	8100042Ch
DIKEYBOARD_X	EQU	8100042Dh
DIKEYBOARD_C	EQU	8100042Eh
DIKEYBOARD_V	EQU	8100042Fh
DIKEYBOARD_B	EQU	81000430h
DIKEYBOARD_N	EQU	81000431h
DIKEYBOARD_M	EQU	81000432h
DIKEYBOARD_COMMA	EQU	81000433h
DIKEYBOARD_PERIOD	EQU	81000434h
DIKEYBOARD_SLASH	EQU	81000435h
DIKEYBOARD_RSHIFT	EQU	81000436h
DIKEYBOARD_MULTIPLY	EQU	81000437h
DIKEYBOARD_LMENU	EQU	81000438h
DIKEYBOARD_SPACE	EQU	81000439h
DIKEYBOARD_CAPITAL	EQU	8100043Ah
DIKEYBOARD_F1	EQU	8100043Bh
DIKEYBOARD_F2	EQU	8100043Ch
DIKEYBOARD_F3	EQU	8100043Dh
DIKEYBOARD_F4	EQU	8100043Eh
DIKEYBOARD_F5	EQU	8100043Fh
DIKEYBOARD_F6	EQU	81000440h
DIKEYBOARD_F7	EQU	81000441h
DIKEYBOARD_F8	EQU	81000442h
DIKEYBOARD_F9	EQU	81000443h
DIKEYBOARD_F10	EQU	81000444h
DIKEYBOARD_NUMLOCK	EQU	81000445h
DIKEYBOARD_SCROLL	EQU	81000446h
DIKEYBOARD_NUMPAD7	EQU	81000447h
DIKEYBOARD_NUMPAD8	EQU	81000448h
DIKEYBOARD_NUMPAD9	EQU	81000449h
DIKEYBOARD_SUBTRACT	EQU	8100044Ah
DIKEYBOARD_NUMPAD4	EQU	8100044Bh
DIKEYBOARD_NUMPAD5	EQU	8100044Ch
DIKEYBOARD_NUMPAD6	EQU	8100044Dh
DIKEYBOARD_ADD	EQU	8100044Eh
DIKEYBOARD_NUMPAD1	EQU	8100044Fh
DIKEYBOARD_NUMPAD2	EQU	81000450h
DIKEYBOARD_NUMPAD3	EQU	81000451h
DIKEYBOARD_NUMPAD0	EQU	81000452h
DIKEYBOARD_DECIMAL	EQU	81000453h
DIKEYBOARD_OEM_102	EQU	81000456h
DIKEYBOARD_F11	EQU	81000457h
DIKEYBOARD_F12	EQU	81000458h
DIKEYBOARD_F13	EQU	81000464h
DIKEYBOARD_F14	EQU	81000465h
DIKEYBOARD_F15	EQU	81000466h
DIKEYBOARD_KANA	EQU	81000470h
DIKEYBOARD_ABNT_C1	EQU	81000473h
DIKEYBOARD_CONVERT	EQU	81000479h
DIKEYBOARD_NOCONVERT	EQU	8100047Bh
DIKEYBOARD_YEN	EQU	8100047Dh
DIKEYBOARD_ABNT_C2	EQU	8100047Eh
DIKEYBOARD_NUMPADEQUALS	EQU	8100048Dh
DIKEYBOARD_PREVTRACK	EQU	81000490h
DIKEYBOARD_AT	EQU	81000491h
DIKEYBOARD_COLON	EQU	81000492h
DIKEYBOARD_UNDERLINE	EQU	81000493h
DIKEYBOARD_KANJI	EQU	81000494h
DIKEYBOARD_STOP	EQU	81000495h
DIKEYBOARD_AX	EQU	81000496h
DIKEYBOARD_UNLABELED	EQU	81000497h
DIKEYBOARD_NEXTTRACK	EQU	81000499h
DIKEYBOARD_NUMPADENTER	EQU	8100049Ch
DIKEYBOARD_RCONTROL	EQU	8100049Dh
DIKEYBOARD_MUTE	EQU	810004A0h
DIKEYBOARD_CALCULATOR	EQU	810004A1h
DIKEYBOARD_PLAYPAUSE	EQU	810004A2h
DIKEYBOARD_MEDIASTOP	EQU	810004A4h
DIKEYBOARD_VOLUMEDOWN	EQU	810004AEh
DIKEYBOARD_VOLUMEUP	EQU	810004B0h
DIKEYBOARD_WEBHOME	EQU	810004B2h
DIKEYBOARD_NUMPADCOMMA	EQU	810004B3h
DIKEYBOARD_DIVIDE	EQU	810004B5h
DIKEYBOARD_SYSRQ	EQU	810004B7h
DIKEYBOARD_RMENU	EQU	810004B8h
DIKEYBOARD_PAUSE	EQU	810004C5h
DIKEYBOARD_HOME	EQU	810004C7h
DIKEYBOARD_UP	EQU	810004C8h
DIKEYBOARD_PRIOR	EQU	810004C9h
DIKEYBOARD_LEFT	EQU	810004CBh
DIKEYBOARD_RIGHT	EQU	810004CDh
DIKEYBOARD_END	EQU	810004CFh
DIKEYBOARD_DOWN	EQU	810004D0h
DIKEYBOARD_NEXT	EQU	810004D1h
DIKEYBOARD_INSERT	EQU	810004D2h
DIKEYBOARD_DELETE	EQU	810004D3h
DIKEYBOARD_LWIN	EQU	810004DBh
DIKEYBOARD_RWIN	EQU	810004DCh
DIKEYBOARD_APPS	EQU	810004DDh
DIKEYBOARD_POWER	EQU	810004DEh
DIKEYBOARD_SLEEP	EQU	810004DFh
DIKEYBOARD_WAKE	EQU	810004E3h
DIKEYBOARD_WEBSEARCH	EQU	810004E5h
DIKEYBOARD_WEBFAVORITES	EQU	810004E6h
DIKEYBOARD_WEBREFRESH	EQU	810004E7h
DIKEYBOARD_WEBSTOP	EQU	810004E8h
DIKEYBOARD_WEBFORWARD	EQU	810004E9h
DIKEYBOARD_WEBBACK	EQU	810004EAh
DIKEYBOARD_MYCOMPUTER	EQU	810004EBh
DIKEYBOARD_MAIL	EQU	810004ECh
DIKEYBOARD_MEDIASELECT	EQU	810004EDh
DIMOUSE_XAXISAB	EQU	( 82000200h  or  DIMOFS_X )
DIMOUSE_YAXISAB	EQU	( 82000200h  or  DIMOFS_Y )
DIMOUSE_XAXIS	EQU	( 82000300h  or  DIMOFS_X )
DIMOUSE_YAXIS	EQU	( 82000300h  or  DIMOFS_Y )
DIMOUSE_WHEEL	EQU	( 82000300h  or  DIMOFS_Z )
DIMOUSE_BUTTON0	EQU	( 82000400h  or  DIMOFS_BUTTON0 )
DIMOUSE_BUTTON1	EQU	( 82000400h  or  DIMOFS_BUTTON1 )
DIMOUSE_BUTTON2	EQU	( 82000400h  or  DIMOFS_BUTTON2 )
DIMOUSE_BUTTON3	EQU	( 82000400h  or  DIMOFS_BUTTON3 )
DIMOUSE_BUTTON4	EQU	( 82000400h  or  DIMOFS_BUTTON4 )
DIMOUSE_BUTTON5	EQU	( 82000400h  or  DIMOFS_BUTTON5 )
DIMOUSE_BUTTON6	EQU	( 82000400h  or  DIMOFS_BUTTON6 )
DIMOUSE_BUTTON7	EQU	( 82000400h  or  DIMOFS_BUTTON7 )
DIVOICE_CHANNEL1	EQU	83000401h
DIVOICE_CHANNEL2	EQU	83000402h
DIVOICE_CHANNEL3	EQU	83000403h
DIVOICE_CHANNEL4	EQU	83000404h
DIVOICE_CHANNEL5	EQU	83000405h
DIVOICE_CHANNEL6	EQU	83000406h
DIVOICE_CHANNEL7	EQU	83000407h
DIVOICE_CHANNEL8	EQU	83000408h
DIVOICE_TEAM	EQU	83000409h
DIVOICE_ALL	EQU	8300040Ah
DIVOICE_RECORDMUTE	EQU	8300040Bh
DIVOICE_PLAYBACKMUTE	EQU	8300040Ch
DIVOICE_TRANSMIT	EQU	8300040Dh
DIVOICE_VOICECOMMAND	EQU	83000410h
DIVIRTUAL_DRIVING_RACE	EQU	01000000h
DIAXIS_DRIVINGR_STEER	EQU	01008A01h
DIAXIS_DRIVINGR_ACCELERATE	EQU	01039202h
DIAXIS_DRIVINGR_BRAKE	EQU	01041203h
DIBUTTON_DRIVINGR_SHIFTUP	EQU	01000C01h
DIBUTTON_DRIVINGR_SHIFTDOWN	EQU	01000C02h
DIBUTTON_DRIVINGR_VIEW	EQU	01001C03h
DIBUTTON_DRIVINGR_MENU	EQU	010004FDh
DIAXIS_DRIVINGR_ACCEL_AND_BRAKE	EQU	01014A04h
DIHATSWITCH_DRIVINGR_GLANCE	EQU	01004601h
DIBUTTON_DRIVINGR_BRAKE	EQU	01004C04h
DIBUTTON_DRIVINGR_DASHBOARD	EQU	01004405h
DIBUTTON_DRIVINGR_AIDS	EQU	01004406h
DIBUTTON_DRIVINGR_MAP	EQU	01004407h
DIBUTTON_DRIVINGR_BOOST	EQU	01004408h
DIBUTTON_DRIVINGR_PIT	EQU	01004409h
DIBUTTON_DRIVINGR_ACCELERATE_LINK	EQU	0103D4E0h
DIBUTTON_DRIVINGR_STEER_LEFT_LINK	EQU	0100CCE4h
DIBUTTON_DRIVINGR_STEER_RIGHT_LINK	EQU	0100CCECh
DIBUTTON_DRIVINGR_GLANCE_LEFT_LINK	EQU	0107C4E4h
DIBUTTON_DRIVINGR_GLANCE_RIGHT_LINK	EQU	0107C4ECh
DIBUTTON_DRIVINGR_DEVICE	EQU	010044FEh
DIBUTTON_DRIVINGR_PAUSE	EQU	010044FCh
DIVIRTUAL_DRIVING_COMBAT	EQU	02000000h
DIAXIS_DRIVINGC_STEER	EQU	02008A01h
DIAXIS_DRIVINGC_ACCELERATE	EQU	02039202h
DIAXIS_DRIVINGC_BRAKE	EQU	02041203h
DIBUTTON_DRIVINGC_FIRE	EQU	02000C01h
DIBUTTON_DRIVINGC_WEAPONS	EQU	02000C02h
DIBUTTON_DRIVINGC_TARGET	EQU	02000C03h
DIBUTTON_DRIVINGC_MENU	EQU	020004FDh
DIAXIS_DRIVINGC_ACCEL_AND_BRAKE	EQU	02014A04h
DIHATSWITCH_DRIVINGC_GLANCE	EQU	02004601h
DIBUTTON_DRIVINGC_SHIFTUP	EQU	02004C04h
DIBUTTON_DRIVINGC_SHIFTDOWN	EQU	02004C05h
DIBUTTON_DRIVINGC_DASHBOARD	EQU	02004406h
DIBUTTON_DRIVINGC_AIDS	EQU	02004407h
DIBUTTON_DRIVINGC_BRAKE	EQU	02004C08h
DIBUTTON_DRIVINGC_FIRESECONDARY	EQU	02004C09h
DIBUTTON_DRIVINGC_ACCELERATE_LINK	EQU	0203D4E0h
DIBUTTON_DRIVINGC_STEER_LEFT_LINK	EQU	0200CCE4h
DIBUTTON_DRIVINGC_STEER_RIGHT_LINK	EQU	0200CCECh
DIBUTTON_DRIVINGC_GLANCE_LEFT_LINK	EQU	0207C4E4h
DIBUTTON_DRIVINGC_GLANCE_RIGHT_LINK	EQU	0207C4ECh
DIBUTTON_DRIVINGC_DEVICE	EQU	020044FEh
DIBUTTON_DRIVINGC_PAUSE	EQU	020044FCh
DIVIRTUAL_DRIVING_TANK	EQU	03000000h
DIAXIS_DRIVINGT_STEER	EQU	03008A01h
DIAXIS_DRIVINGT_BARREL	EQU	03010202h
DIAXIS_DRIVINGT_ACCELERATE	EQU	03039203h
DIAXIS_DRIVINGT_ROTATE	EQU	03020204h
DIBUTTON_DRIVINGT_FIRE	EQU	03000C01h
DIBUTTON_DRIVINGT_WEAPONS	EQU	03000C02h
DIBUTTON_DRIVINGT_TARGET	EQU	03000C03h
DIBUTTON_DRIVINGT_MENU	EQU	030004FDh
DIHATSWITCH_DRIVINGT_GLANCE	EQU	03004601h
DIAXIS_DRIVINGT_BRAKE	EQU	03045205h
DIAXIS_DRIVINGT_ACCEL_AND_BRAKE	EQU	03014A06h
DIBUTTON_DRIVINGT_VIEW	EQU	03005C04h
DIBUTTON_DRIVINGT_DASHBOARD	EQU	03005C05h
DIBUTTON_DRIVINGT_BRAKE	EQU	03004C06h
DIBUTTON_DRIVINGT_FIRESECONDARY	EQU	03004C07h
DIBUTTON_DRIVINGT_ACCELERATE_LINK	EQU	0303D4E0h
DIBUTTON_DRIVINGT_STEER_LEFT_LINK	EQU	0300CCE4h
DIBUTTON_DRIVINGT_STEER_RIGHT_LINK	EQU	0300CCECh
DIBUTTON_DRIVINGT_BARREL_UP_LINK	EQU	030144E0h
DIBUTTON_DRIVINGT_BARREL_DOWN_LINK	EQU	030144E8h
DIBUTTON_DRIVINGT_ROTATE_LEFT_LINK	EQU	030244E4h
DIBUTTON_DRIVINGT_ROTATE_RIGHT_LINK	EQU	030244ECh
DIBUTTON_DRIVINGT_GLANCE_LEFT_LINK	EQU	0307C4E4h
DIBUTTON_DRIVINGT_GLANCE_RIGHT_LINK	EQU	0307C4ECh
DIBUTTON_DRIVINGT_DEVICE	EQU	030044FEh
DIBUTTON_DRIVINGT_PAUSE	EQU	030044FCh
DIVIRTUAL_FLYING_CIVILIAN	EQU	04000000h
DIAXIS_FLYINGC_BANK	EQU	04008A01h
DIAXIS_FLYINGC_PITCH	EQU	04010A02h
DIAXIS_FLYINGC_THROTTLE	EQU	04039203h
DIBUTTON_FLYINGC_VIEW	EQU	04002401h
DIBUTTON_FLYINGC_DISPLAY	EQU	04002402h
DIBUTTON_FLYINGC_GEAR	EQU	04002C03h
DIBUTTON_FLYINGC_MENU	EQU	040004FDh
DIHATSWITCH_FLYINGC_GLANCE	EQU	04004601h
DIAXIS_FLYINGC_BRAKE	EQU	04046A04h
DIAXIS_FLYINGC_RUDDER	EQU	04025205h
DIAXIS_FLYINGC_FLAPS	EQU	04055A06h
DIBUTTON_FLYINGC_FLAPSUP	EQU	04006404h
DIBUTTON_FLYINGC_FLAPSDOWN	EQU	04006405h
DIBUTTON_FLYINGC_BRAKE_LINK	EQU	04046CE0h
DIBUTTON_FLYINGC_FASTER_LINK	EQU	0403D4E0h
DIBUTTON_FLYINGC_SLOWER_LINK	EQU	0403D4E8h
DIBUTTON_FLYINGC_GLANCE_LEFT_LINK	EQU	0407C4E4h
DIBUTTON_FLYINGC_GLANCE_RIGHT_LINK	EQU	0407C4ECh
DIBUTTON_FLYINGC_GLANCE_UP_LINK	EQU	0407C4E0h
DIBUTTON_FLYINGC_GLANCE_DOWN_LINK	EQU	0407C4E8h
DIBUTTON_FLYINGC_DEVICE	EQU	040044FEh
DIBUTTON_FLYINGC_PAUSE	EQU	040044FCh
DIVIRTUAL_FLYING_MILITARY	EQU	05000000h
DIAXIS_FLYINGM_BANK	EQU	05008A01h
DIAXIS_FLYINGM_PITCH	EQU	05010A02h
DIAXIS_FLYINGM_THROTTLE	EQU	05039203h
DIBUTTON_FLYINGM_FIRE	EQU	05000C01h
DIBUTTON_FLYINGM_WEAPONS	EQU	05000C02h
DIBUTTON_FLYINGM_TARGET	EQU	05000C03h
DIBUTTON_FLYINGM_MENU	EQU	050004FDh
DIHATSWITCH_FLYINGM_GLANCE	EQU	05004601h
DIBUTTON_FLYINGM_COUNTER	EQU	05005C04h
DIAXIS_FLYINGM_RUDDER	EQU	05024A04h
DIAXIS_FLYINGM_BRAKE	EQU	05046205h
DIBUTTON_FLYINGM_VIEW	EQU	05006405h
DIBUTTON_FLYINGM_DISPLAY	EQU	05006406h
DIAXIS_FLYINGM_FLAPS	EQU	05055206h
DIBUTTON_FLYINGM_FLAPSUP	EQU	05005407h
DIBUTTON_FLYINGM_FLAPSDOWN	EQU	05005408h
DIBUTTON_FLYINGM_FIRESECONDARY	EQU	05004C09h
DIBUTTON_FLYINGM_GEAR	EQU	0500640Ah
DIBUTTON_FLYINGM_BRAKE_LINK	EQU	050464E0h
DIBUTTON_FLYINGM_FASTER_LINK	EQU	0503D4E0h
DIBUTTON_FLYINGM_SLOWER_LINK	EQU	0503D4E8h
DIBUTTON_FLYINGM_GLANCE_LEFT_LINK	EQU	0507C4E4h
DIBUTTON_FLYINGM_GLANCE_RIGHT_LINK	EQU	0507C4ECh
DIBUTTON_FLYINGM_GLANCE_UP_LINK	EQU	0507C4E0h
DIBUTTON_FLYINGM_GLANCE_DOWN_LINK	EQU	0507C4E8h
DIBUTTON_FLYINGM_DEVICE	EQU	050044FEh
DIBUTTON_FLYINGM_PAUSE	EQU	050044FCh
DIVIRTUAL_FLYING_HELICOPTER	EQU	06000000h
DIAXIS_FLYINGH_BANK	EQU	06008A01h
DIAXIS_FLYINGH_PITCH	EQU	06010A02h
DIAXIS_FLYINGH_COLLECTIVE	EQU	06018A03h
DIBUTTON_FLYINGH_FIRE	EQU	06001401h
DIBUTTON_FLYINGH_WEAPONS	EQU	06001402h
DIBUTTON_FLYINGH_TARGET	EQU	06001403h
DIBUTTON_FLYINGH_MENU	EQU	060004FDh
DIHATSWITCH_FLYINGH_GLANCE	EQU	06004601h
DIAXIS_FLYINGH_TORQUE	EQU	06025A04h
DIAXIS_FLYINGH_THROTTLE	EQU	0603DA05h
DIBUTTON_FLYINGH_COUNTER	EQU	06005404h
DIBUTTON_FLYINGH_VIEW	EQU	06006405h
DIBUTTON_FLYINGH_GEAR	EQU	06006406h
DIBUTTON_FLYINGH_FIRESECONDARY	EQU	06004C07h
DIBUTTON_FLYINGH_FASTER_LINK	EQU	0603DCE0h
DIBUTTON_FLYINGH_SLOWER_LINK	EQU	0603DCE8h
DIBUTTON_FLYINGH_GLANCE_LEFT_LINK	EQU	0607C4E4h
DIBUTTON_FLYINGH_GLANCE_RIGHT_LINK	EQU	0607C4ECh
DIBUTTON_FLYINGH_GLANCE_UP_LINK	EQU	0607C4E0h
DIBUTTON_FLYINGH_GLANCE_DOWN_LINK	EQU	0607C4E8h
DIBUTTON_FLYINGH_DEVICE	EQU	060044FEh
DIBUTTON_FLYINGH_PAUSE	EQU	060044FCh
DIVIRTUAL_SPACESIM	EQU	07000000h
DIAXIS_SPACESIM_LATERAL	EQU	07008201h
DIAXIS_SPACESIM_MOVE	EQU	07010202h
DIAXIS_SPACESIM_THROTTLE	EQU	07038203h
DIBUTTON_SPACESIM_FIRE	EQU	07000401h
DIBUTTON_SPACESIM_WEAPONS	EQU	07000402h
DIBUTTON_SPACESIM_TARGET	EQU	07000403h
DIBUTTON_SPACESIM_MENU	EQU	070004FDh
DIHATSWITCH_SPACESIM_GLANCE	EQU	07004601h
DIAXIS_SPACESIM_CLIMB	EQU	0701C204h
DIAXIS_SPACESIM_ROTATE	EQU	07024205h
DIBUTTON_SPACESIM_VIEW	EQU	07004404h
DIBUTTON_SPACESIM_DISPLAY	EQU	07004405h
DIBUTTON_SPACESIM_RAISE	EQU	07004406h
DIBUTTON_SPACESIM_LOWER	EQU	07004407h
DIBUTTON_SPACESIM_GEAR	EQU	07004408h
DIBUTTON_SPACESIM_FIRESECONDARY	EQU	07004409h
DIBUTTON_SPACESIM_LEFT_LINK	EQU	0700C4E4h
DIBUTTON_SPACESIM_RIGHT_LINK	EQU	0700C4ECh
DIBUTTON_SPACESIM_FORWARD_LINK	EQU	070144E0h
DIBUTTON_SPACESIM_BACKWARD_LINK	EQU	070144E8h
DIBUTTON_SPACESIM_FASTER_LINK	EQU	0703C4E0h
DIBUTTON_SPACESIM_SLOWER_LINK	EQU	0703C4E8h
DIBUTTON_SPACESIM_TURN_LEFT_LINK	EQU	070244E4h
DIBUTTON_SPACESIM_TURN_RIGHT_LINK	EQU	070244ECh
DIBUTTON_SPACESIM_GLANCE_LEFT_LINK	EQU	0707C4E4h
DIBUTTON_SPACESIM_GLANCE_RIGHT_LINK	EQU	0707C4ECh
DIBUTTON_SPACESIM_GLANCE_UP_LINK	EQU	0707C4E0h
DIBUTTON_SPACESIM_GLANCE_DOWN_LINK	EQU	0707C4E8h
DIBUTTON_SPACESIM_DEVICE	EQU	070044FEh
DIBUTTON_SPACESIM_PAUSE	EQU	070044FCh
DIVIRTUAL_FIGHTING_HAND2HAND	EQU	08000000h
DIAXIS_FIGHTINGH_LATERAL	EQU	08008201h
DIAXIS_FIGHTINGH_MOVE	EQU	08010202h
DIBUTTON_FIGHTINGH_PUNCH	EQU	08000401h
DIBUTTON_FIGHTINGH_KICK	EQU	08000402h
DIBUTTON_FIGHTINGH_BLOCK	EQU	08000403h
DIBUTTON_FIGHTINGH_CROUCH	EQU	08000404h
DIBUTTON_FIGHTINGH_JUMP	EQU	08000405h
DIBUTTON_FIGHTINGH_SPECIAL1	EQU	08000406h
DIBUTTON_FIGHTINGH_SPECIAL2	EQU	08000407h
DIBUTTON_FIGHTINGH_MENU	EQU	080004FDh
DIBUTTON_FIGHTINGH_SELECT	EQU	08004408h
DIHATSWITCH_FIGHTINGH_SLIDE	EQU	08004601h
DIBUTTON_FIGHTINGH_DISPLAY	EQU	08004409h
DIAXIS_FIGHTINGH_ROTATE	EQU	08024203h
DIBUTTON_FIGHTINGH_DODGE	EQU	0800440Ah
DIBUTTON_FIGHTINGH_LEFT_LINK	EQU	0800C4E4h
DIBUTTON_FIGHTINGH_RIGHT_LINK	EQU	0800C4ECh
DIBUTTON_FIGHTINGH_FORWARD_LINK	EQU	080144E0h
DIBUTTON_FIGHTINGH_BACKWARD_LINK	EQU	080144E8h
DIBUTTON_FIGHTINGH_DEVICE	EQU	080044FEh
DIBUTTON_FIGHTINGH_PAUSE	EQU	080044FCh
DIVIRTUAL_FIGHTING_FPS	EQU	09000000h
DIAXIS_FPS_ROTATE	EQU	09008201h
DIAXIS_FPS_MOVE	EQU	09010202h
DIBUTTON_FPS_FIRE	EQU	09000401h
DIBUTTON_FPS_WEAPONS	EQU	09000402h
DIBUTTON_FPS_APPLY	EQU	09000403h
DIBUTTON_FPS_SELECT	EQU	09000404h
DIBUTTON_FPS_CROUCH	EQU	09000405h
DIBUTTON_FPS_JUMP	EQU	09000406h
DIAXIS_FPS_LOOKUPDOWN	EQU	09018203h
DIBUTTON_FPS_STRAFE	EQU	09000407h
DIBUTTON_FPS_MENU	EQU	090004FDh
DIHATSWITCH_FPS_GLANCE	EQU	09004601h
DIBUTTON_FPS_DISPLAY	EQU	09004408h
DIAXIS_FPS_SIDESTEP	EQU	09024204h
DIBUTTON_FPS_DODGE	EQU	09004409h
DIBUTTON_FPS_GLANCEL	EQU	0900440Ah
DIBUTTON_FPS_GLANCER	EQU	0900440Bh
DIBUTTON_FPS_FIRESECONDARY	EQU	0900440Ch
DIBUTTON_FPS_ROTATE_LEFT_LINK	EQU	0900C4E4h
DIBUTTON_FPS_ROTATE_RIGHT_LINK	EQU	0900C4ECh
DIBUTTON_FPS_FORWARD_LINK	EQU	090144E0h
DIBUTTON_FPS_BACKWARD_LINK	EQU	090144E8h
DIBUTTON_FPS_GLANCE_UP_LINK	EQU	0901C4E0h
DIBUTTON_FPS_GLANCE_DOWN_LINK	EQU	0901C4E8h
DIBUTTON_FPS_STEP_LEFT_LINK	EQU	090244E4h
DIBUTTON_FPS_STEP_RIGHT_LINK	EQU	090244ECh
DIBUTTON_FPS_DEVICE	EQU	090044FEh
DIBUTTON_FPS_PAUSE	EQU	090044FCh
DIVIRTUAL_FIGHTING_THIRDPERSON	EQU	0A000000h
DIAXIS_TPS_TURN	EQU	0A020201h
DIAXIS_TPS_MOVE	EQU	0A010202h
DIBUTTON_TPS_RUN	EQU	0A000401h
DIBUTTON_TPS_ACTION	EQU	0A000402h
DIBUTTON_TPS_SELECT	EQU	0A000403h
DIBUTTON_TPS_USE	EQU	0A000404h
DIBUTTON_TPS_JUMP	EQU	0A000405h
DIBUTTON_TPS_MENU	EQU	0A0004FDh
DIHATSWITCH_TPS_GLANCE	EQU	0A004601h
DIBUTTON_TPS_VIEW	EQU	0A004406h
DIBUTTON_TPS_STEPLEFT	EQU	0A004407h
DIBUTTON_TPS_STEPRIGHT	EQU	0A004408h
DIAXIS_TPS_STEP	EQU	0A00C203h
DIBUTTON_TPS_DODGE	EQU	0A004409h
DIBUTTON_TPS_INVENTORY	EQU	0A00440Ah
DIBUTTON_TPS_TURN_LEFT_LINK	EQU	0A0244E4h
DIBUTTON_TPS_TURN_RIGHT_LINK	EQU	0A0244ECh
DIBUTTON_TPS_FORWARD_LINK	EQU	0A0144E0h
DIBUTTON_TPS_BACKWARD_LINK	EQU	0A0144E8h
DIBUTTON_TPS_GLANCE_UP_LINK	EQU	0A07C4E0h
DIBUTTON_TPS_GLANCE_DOWN_LINK	EQU	0A07C4E8h
DIBUTTON_TPS_GLANCE_LEFT_LINK	EQU	0A07C4E4h
DIBUTTON_TPS_GLANCE_RIGHT_LINK	EQU	0A07C4ECh
DIBUTTON_TPS_DEVICE	EQU	0A0044FEh
DIBUTTON_TPS_PAUSE	EQU	0A0044FCh
DIVIRTUAL_STRATEGY_ROLEPLAYING	EQU	0B000000h
DIAXIS_STRATEGYR_LATERAL	EQU	0B008201h
DIAXIS_STRATEGYR_MOVE	EQU	0B010202h
DIBUTTON_STRATEGYR_GET	EQU	0B000401h
DIBUTTON_STRATEGYR_APPLY	EQU	0B000402h
DIBUTTON_STRATEGYR_SELECT	EQU	0B000403h
DIBUTTON_STRATEGYR_ATTACK	EQU	0B000404h
DIBUTTON_STRATEGYR_CAST	EQU	0B000405h
DIBUTTON_STRATEGYR_CROUCH	EQU	0B000406h
DIBUTTON_STRATEGYR_JUMP	EQU	0B000407h
DIBUTTON_STRATEGYR_MENU	EQU	0B0004FDh
DIHATSWITCH_STRATEGYR_GLANCE	EQU	0B004601h
DIBUTTON_STRATEGYR_MAP	EQU	0B004408h
DIBUTTON_STRATEGYR_DISPLAY	EQU	0B004409h
DIAXIS_STRATEGYR_ROTATE	EQU	0B024203h
DIBUTTON_STRATEGYR_LEFT_LINK	EQU	0B00C4E4h
DIBUTTON_STRATEGYR_RIGHT_LINK	EQU	0B00C4ECh
DIBUTTON_STRATEGYR_FORWARD_LINK	EQU	0B0144E0h
DIBUTTON_STRATEGYR_BACK_LINK	EQU	0B0144E8h
DIBUTTON_STRATEGYR_ROTATE_LEFT_LINK	EQU	0B0244E4h
DIBUTTON_STRATEGYR_ROTATE_RIGHT_LINK	EQU	0B0244ECh
DIBUTTON_STRATEGYR_DEVICE	EQU	0B0044FEh
DIBUTTON_STRATEGYR_PAUSE	EQU	0B0044FCh
DIVIRTUAL_STRATEGY_TURN	EQU	0C000000h
DIAXIS_STRATEGYT_LATERAL	EQU	0C008201h
DIAXIS_STRATEGYT_MOVE	EQU	0C010202h
DIBUTTON_STRATEGYT_SELECT	EQU	0C000401h
DIBUTTON_STRATEGYT_INSTRUCT	EQU	0C000402h
DIBUTTON_STRATEGYT_APPLY	EQU	0C000403h
DIBUTTON_STRATEGYT_TEAM	EQU	0C000404h
DIBUTTON_STRATEGYT_TURN	EQU	0C000405h
DIBUTTON_STRATEGYT_MENU	EQU	0C0004FDh
DIBUTTON_STRATEGYT_ZOOM	EQU	0C004406h
DIBUTTON_STRATEGYT_MAP	EQU	0C004407h
DIBUTTON_STRATEGYT_DISPLAY	EQU	0C004408h
DIBUTTON_STRATEGYT_LEFT_LINK	EQU	0C00C4E4h
DIBUTTON_STRATEGYT_RIGHT_LINK	EQU	0C00C4ECh
DIBUTTON_STRATEGYT_FORWARD_LINK	EQU	0C0144E0h
DIBUTTON_STRATEGYT_BACK_LINK	EQU	0C0144E8h
DIBUTTON_STRATEGYT_DEVICE	EQU	0C0044FEh
DIBUTTON_STRATEGYT_PAUSE	EQU	0C0044FCh
DIVIRTUAL_SPORTS_HUNTING	EQU	0D000000h
DIAXIS_HUNTING_LATERAL	EQU	0D008201h
DIAXIS_HUNTING_MOVE	EQU	0D010202h
DIBUTTON_HUNTING_FIRE	EQU	0D000401h
DIBUTTON_HUNTING_AIM	EQU	0D000402h
DIBUTTON_HUNTING_WEAPON	EQU	0D000403h
DIBUTTON_HUNTING_BINOCULAR	EQU	0D000404h
DIBUTTON_HUNTING_CALL	EQU	0D000405h
DIBUTTON_HUNTING_MAP	EQU	0D000406h
DIBUTTON_HUNTING_SPECIAL	EQU	0D000407h
DIBUTTON_HUNTING_MENU	EQU	0D0004FDh
DIHATSWITCH_HUNTING_GLANCE	EQU	0D004601h
DIBUTTON_HUNTING_DISPLAY	EQU	0D004408h
DIAXIS_HUNTING_ROTATE	EQU	0D024203h
DIBUTTON_HUNTING_CROUCH	EQU	0D004409h
DIBUTTON_HUNTING_JUMP	EQU	0D00440Ah
DIBUTTON_HUNTING_FIRESECONDARY	EQU	0D00440Bh
DIBUTTON_HUNTING_LEFT_LINK	EQU	0D00C4E4h
DIBUTTON_HUNTING_RIGHT_LINK	EQU	0D00C4ECh
DIBUTTON_HUNTING_FORWARD_LINK	EQU	0D0144E0h
DIBUTTON_HUNTING_BACK_LINK	EQU	0D0144E8h
DIBUTTON_HUNTING_ROTATE_LEFT_LINK	EQU	0D0244E4h
DIBUTTON_HUNTING_ROTATE_RIGHT_LINK	EQU	0D0244ECh
DIBUTTON_HUNTING_DEVICE	EQU	0D0044FEh
DIBUTTON_HUNTING_PAUSE	EQU	0D0044FCh
DIVIRTUAL_SPORTS_FISHING	EQU	0E000000h
DIAXIS_FISHING_LATERAL	EQU	0E008201h
DIAXIS_FISHING_MOVE	EQU	0E010202h
DIBUTTON_FISHING_CAST	EQU	0E000401h
DIBUTTON_FISHING_TYPE	EQU	0E000402h
DIBUTTON_FISHING_BINOCULAR	EQU	0E000403h
DIBUTTON_FISHING_BAIT	EQU	0E000404h
DIBUTTON_FISHING_MAP	EQU	0E000405h
DIBUTTON_FISHING_MENU	EQU	0E0004FDh
DIHATSWITCH_FISHING_GLANCE	EQU	0E004601h
DIBUTTON_FISHING_DISPLAY	EQU	0E004406h
DIAXIS_FISHING_ROTATE	EQU	0E024203h
DIBUTTON_FISHING_CROUCH	EQU	0E004407h
DIBUTTON_FISHING_JUMP	EQU	0E004408h
DIBUTTON_FISHING_LEFT_LINK	EQU	0E00C4E4h
DIBUTTON_FISHING_RIGHT_LINK	EQU	0E00C4ECh
DIBUTTON_FISHING_FORWARD_LINK	EQU	0E0144E0h
DIBUTTON_FISHING_BACK_LINK	EQU	0E0144E8h
DIBUTTON_FISHING_ROTATE_LEFT_LINK	EQU	0E0244E4h
DIBUTTON_FISHING_ROTATE_RIGHT_LINK	EQU	0E0244ECh
DIBUTTON_FISHING_DEVICE	EQU	0E0044FEh
DIBUTTON_FISHING_PAUSE	EQU	0E0044FCh
DIVIRTUAL_SPORTS_BASEBALL_BAT	EQU	0F000000h
DIAXIS_BASEBALLB_LATERAL	EQU	0F008201h
DIAXIS_BASEBALLB_MOVE	EQU	0F010202h
DIBUTTON_BASEBALLB_SELECT	EQU	0F000401h
DIBUTTON_BASEBALLB_NORMAL	EQU	0F000402h
DIBUTTON_BASEBALLB_POWER	EQU	0F000403h
DIBUTTON_BASEBALLB_BUNT	EQU	0F000404h
DIBUTTON_BASEBALLB_STEAL	EQU	0F000405h
DIBUTTON_BASEBALLB_BURST	EQU	0F000406h
DIBUTTON_BASEBALLB_SLIDE	EQU	0F000407h
DIBUTTON_BASEBALLB_CONTACT	EQU	0F000408h
DIBUTTON_BASEBALLB_MENU	EQU	0F0004FDh
DIBUTTON_BASEBALLB_NOSTEAL	EQU	0F004409h
DIBUTTON_BASEBALLB_BOX	EQU	0F00440Ah
DIBUTTON_BASEBALLB_LEFT_LINK	EQU	0F00C4E4h
DIBUTTON_BASEBALLB_RIGHT_LINK	EQU	0F00C4ECh
DIBUTTON_BASEBALLB_FORWARD_LINK	EQU	0F0144E0h
DIBUTTON_BASEBALLB_BACK_LINK	EQU	0F0144E8h
DIBUTTON_BASEBALLB_DEVICE	EQU	0F0044FEh
DIBUTTON_BASEBALLB_PAUSE	EQU	0F0044FCh
DIVIRTUAL_SPORTS_BASEBALL_PITCH	EQU	10000000h
DIAXIS_BASEBALLP_LATERAL	EQU	10008201h
DIAXIS_BASEBALLP_MOVE	EQU	10010202h
DIBUTTON_BASEBALLP_SELECT	EQU	10000401h
DIBUTTON_BASEBALLP_PITCH	EQU	10000402h
DIBUTTON_BASEBALLP_BASE	EQU	10000403h
DIBUTTON_BASEBALLP_THROW	EQU	10000404h
DIBUTTON_BASEBALLP_FAKE	EQU	10000405h
DIBUTTON_BASEBALLP_MENU	EQU	100004FDh
DIBUTTON_BASEBALLP_WALK	EQU	10004406h
DIBUTTON_BASEBALLP_LOOK	EQU	10004407h
DIBUTTON_BASEBALLP_LEFT_LINK	EQU	1000C4E4h
DIBUTTON_BASEBALLP_RIGHT_LINK	EQU	1000C4ECh
DIBUTTON_BASEBALLP_FORWARD_LINK	EQU	100144E0h
DIBUTTON_BASEBALLP_BACK_LINK	EQU	100144E8h
DIBUTTON_BASEBALLP_DEVICE	EQU	100044FEh
DIBUTTON_BASEBALLP_PAUSE	EQU	100044FCh
DIVIRTUAL_SPORTS_BASEBALL_FIELD	EQU	11000000h
DIAXIS_BASEBALLF_LATERAL	EQU	11008201h
DIAXIS_BASEBALLF_MOVE	EQU	11010202h
DIBUTTON_BASEBALLF_NEAREST	EQU	11000401h
DIBUTTON_BASEBALLF_THROW1	EQU	11000402h
DIBUTTON_BASEBALLF_THROW2	EQU	11000403h
DIBUTTON_BASEBALLF_BURST	EQU	11000404h
DIBUTTON_BASEBALLF_JUMP	EQU	11000405h
DIBUTTON_BASEBALLF_DIVE	EQU	11000406h
DIBUTTON_BASEBALLF_MENU	EQU	110004FDh
DIBUTTON_BASEBALLF_SHIFTIN	EQU	11004407h
DIBUTTON_BASEBALLF_SHIFTOUT	EQU	11004408h
DIBUTTON_BASEBALLF_AIM_LEFT_LINK	EQU	1100C4E4h
DIBUTTON_BASEBALLF_AIM_RIGHT_LINK	EQU	1100C4ECh
DIBUTTON_BASEBALLF_FORWARD_LINK	EQU	110144E0h
DIBUTTON_BASEBALLF_BACK_LINK	EQU	110144E8h
DIBUTTON_BASEBALLF_DEVICE	EQU	110044FEh
DIBUTTON_BASEBALLF_PAUSE	EQU	110044FCh
DIVIRTUAL_SPORTS_BASKETBALL_OFFENSE	EQU	12000000h
DIAXIS_BBALLO_LATERAL	EQU	12008201h
DIAXIS_BBALLO_MOVE	EQU	12010202h
DIBUTTON_BBALLO_SHOOT	EQU	12000401h
DIBUTTON_BBALLO_DUNK	EQU	12000402h
DIBUTTON_BBALLO_PASS	EQU	12000403h
DIBUTTON_BBALLO_FAKE	EQU	12000404h
DIBUTTON_BBALLO_SPECIAL	EQU	12000405h
DIBUTTON_BBALLO_PLAYER	EQU	12000406h
DIBUTTON_BBALLO_BURST	EQU	12000407h
DIBUTTON_BBALLO_CALL	EQU	12000408h
DIBUTTON_BBALLO_MENU	EQU	120004FDh
DIHATSWITCH_BBALLO_GLANCE	EQU	12004601h
DIBUTTON_BBALLO_SCREEN	EQU	12004409h
DIBUTTON_BBALLO_PLAY	EQU	1200440Ah
DIBUTTON_BBALLO_JAB	EQU	1200440Bh
DIBUTTON_BBALLO_POST	EQU	1200440Ch
DIBUTTON_BBALLO_TIMEOUT	EQU	1200440Dh
DIBUTTON_BBALLO_SUBSTITUTE	EQU	1200440Eh
DIBUTTON_BBALLO_LEFT_LINK	EQU	1200C4E4h
DIBUTTON_BBALLO_RIGHT_LINK	EQU	1200C4ECh
DIBUTTON_BBALLO_FORWARD_LINK	EQU	120144E0h
DIBUTTON_BBALLO_BACK_LINK	EQU	120144E8h
DIBUTTON_BBALLO_DEVICE	EQU	120044FEh
DIBUTTON_BBALLO_PAUSE	EQU	120044FCh
DIVIRTUAL_SPORTS_BASKETBALL_DEFENSE	EQU	13000000h
DIAXIS_BBALLD_LATERAL	EQU	13008201h
DIAXIS_BBALLD_MOVE	EQU	13010202h
DIBUTTON_BBALLD_JUMP	EQU	13000401h
DIBUTTON_BBALLD_STEAL	EQU	13000402h
DIBUTTON_BBALLD_FAKE	EQU	13000403h
DIBUTTON_BBALLD_SPECIAL	EQU	13000404h
DIBUTTON_BBALLD_PLAYER	EQU	13000405h
DIBUTTON_BBALLD_BURST	EQU	13000406h
DIBUTTON_BBALLD_PLAY	EQU	13000407h
DIBUTTON_BBALLD_MENU	EQU	130004FDh
DIHATSWITCH_BBALLD_GLANCE	EQU	13004601h
DIBUTTON_BBALLD_TIMEOUT	EQU	13004408h
DIBUTTON_BBALLD_SUBSTITUTE	EQU	13004409h
DIBUTTON_BBALLD_LEFT_LINK	EQU	1300C4E4h
DIBUTTON_BBALLD_RIGHT_LINK	EQU	1300C4ECh
DIBUTTON_BBALLD_FORWARD_LINK	EQU	130144E0h
DIBUTTON_BBALLD_BACK_LINK	EQU	130144E8h
DIBUTTON_BBALLD_DEVICE	EQU	130044FEh
DIBUTTON_BBALLD_PAUSE	EQU	130044FCh
DIVIRTUAL_SPORTS_FOOTBALL_FIELD	EQU	14000000h
DIBUTTON_FOOTBALLP_PLAY	EQU	14000401h
DIBUTTON_FOOTBALLP_SELECT	EQU	14000402h
DIBUTTON_FOOTBALLP_HELP	EQU	14000403h
DIBUTTON_FOOTBALLP_MENU	EQU	140004FDh
DIBUTTON_FOOTBALLP_DEVICE	EQU	140044FEh
DIBUTTON_FOOTBALLP_PAUSE	EQU	140044FCh
DIVIRTUAL_SPORTS_FOOTBALL_QBCK	EQU	15000000h
DIAXIS_FOOTBALLQ_LATERAL	EQU	15008201h
DIAXIS_FOOTBALLQ_MOVE	EQU	15010202h
DIBUTTON_FOOTBALLQ_SELECT	EQU	15000401h
DIBUTTON_FOOTBALLQ_SNAP	EQU	15000402h
DIBUTTON_FOOTBALLQ_JUMP	EQU	15000403h
DIBUTTON_FOOTBALLQ_SLIDE	EQU	15000404h
DIBUTTON_FOOTBALLQ_PASS	EQU	15000405h
DIBUTTON_FOOTBALLQ_FAKE	EQU	15000406h
DIBUTTON_FOOTBALLQ_MENU	EQU	150004FDh
DIBUTTON_FOOTBALLQ_FAKESNAP	EQU	15004407h
DIBUTTON_FOOTBALLQ_MOTION	EQU	15004408h
DIBUTTON_FOOTBALLQ_AUDIBLE	EQU	15004409h
DIBUTTON_FOOTBALLQ_LEFT_LINK	EQU	1500C4E4h
DIBUTTON_FOOTBALLQ_RIGHT_LINK	EQU	1500C4ECh
DIBUTTON_FOOTBALLQ_FORWARD_LINK	EQU	150144E0h
DIBUTTON_FOOTBALLQ_BACK_LINK	EQU	150144E8h
DIBUTTON_FOOTBALLQ_DEVICE	EQU	150044FEh
DIBUTTON_FOOTBALLQ_PAUSE	EQU	150044FCh
DIVIRTUAL_SPORTS_FOOTBALL_OFFENSE	EQU	16000000h
DIAXIS_FOOTBALLO_LATERAL	EQU	16008201h
DIAXIS_FOOTBALLO_MOVE	EQU	16010202h
DIBUTTON_FOOTBALLO_JUMP	EQU	16000401h
DIBUTTON_FOOTBALLO_LEFTARM	EQU	16000402h
DIBUTTON_FOOTBALLO_RIGHTARM	EQU	16000403h
DIBUTTON_FOOTBALLO_THROW	EQU	16000404h
DIBUTTON_FOOTBALLO_SPIN	EQU	16000405h
DIBUTTON_FOOTBALLO_MENU	EQU	160004FDh
DIBUTTON_FOOTBALLO_JUKE	EQU	16004406h
DIBUTTON_FOOTBALLO_SHOULDER	EQU	16004407h
DIBUTTON_FOOTBALLO_TURBO	EQU	16004408h
DIBUTTON_FOOTBALLO_DIVE	EQU	16004409h
DIBUTTON_FOOTBALLO_ZOOM	EQU	1600440Ah
DIBUTTON_FOOTBALLO_SUBSTITUTE	EQU	1600440Bh
DIBUTTON_FOOTBALLO_LEFT_LINK	EQU	1600C4E4h
DIBUTTON_FOOTBALLO_RIGHT_LINK	EQU	1600C4ECh
DIBUTTON_FOOTBALLO_FORWARD_LINK	EQU	160144E0h
DIBUTTON_FOOTBALLO_BACK_LINK	EQU	160144E8h
DIBUTTON_FOOTBALLO_DEVICE	EQU	160044FEh
DIBUTTON_FOOTBALLO_PAUSE	EQU	160044FCh
DIVIRTUAL_SPORTS_FOOTBALL_DEFENSE	EQU	17000000h
DIAXIS_FOOTBALLD_LATERAL	EQU	17008201h
DIAXIS_FOOTBALLD_MOVE	EQU	17010202h
DIBUTTON_FOOTBALLD_PLAY	EQU	17000401h
DIBUTTON_FOOTBALLD_SELECT	EQU	17000402h
DIBUTTON_FOOTBALLD_JUMP	EQU	17000403h
DIBUTTON_FOOTBALLD_TACKLE	EQU	17000404h
DIBUTTON_FOOTBALLD_FAKE	EQU	17000405h
DIBUTTON_FOOTBALLD_SUPERTACKLE	EQU	17000406h
DIBUTTON_FOOTBALLD_MENU	EQU	170004FDh
DIBUTTON_FOOTBALLD_SPIN	EQU	17004407h
DIBUTTON_FOOTBALLD_SWIM	EQU	17004408h
DIBUTTON_FOOTBALLD_BULLRUSH	EQU	17004409h
DIBUTTON_FOOTBALLD_RIP	EQU	1700440Ah
DIBUTTON_FOOTBALLD_AUDIBLE	EQU	1700440Bh
DIBUTTON_FOOTBALLD_ZOOM	EQU	1700440Ch
DIBUTTON_FOOTBALLD_SUBSTITUTE	EQU	1700440Dh
DIBUTTON_FOOTBALLD_LEFT_LINK	EQU	1700C4E4h
DIBUTTON_FOOTBALLD_RIGHT_LINK	EQU	1700C4ECh
DIBUTTON_FOOTBALLD_FORWARD_LINK	EQU	170144E0h
DIBUTTON_FOOTBALLD_BACK_LINK	EQU	170144E8h
DIBUTTON_FOOTBALLD_DEVICE	EQU	170044FEh
DIBUTTON_FOOTBALLD_PAUSE	EQU	170044FCh
DIVIRTUAL_SPORTS_GOLF	EQU	18000000h
DIAXIS_GOLF_LATERAL	EQU	18008201h
DIAXIS_GOLF_MOVE	EQU	18010202h
DIBUTTON_GOLF_SWING	EQU	18000401h
DIBUTTON_GOLF_SELECT	EQU	18000402h
DIBUTTON_GOLF_UP	EQU	18000403h
DIBUTTON_GOLF_DOWN	EQU	18000404h
DIBUTTON_GOLF_TERRAIN	EQU	18000405h
DIBUTTON_GOLF_FLYBY	EQU	18000406h
DIBUTTON_GOLF_MENU	EQU	180004FDh
DIHATSWITCH_GOLF_SCROLL	EQU	18004601h
DIBUTTON_GOLF_ZOOM	EQU	18004407h
DIBUTTON_GOLF_TIMEOUT	EQU	18004408h
DIBUTTON_GOLF_SUBSTITUTE	EQU	18004409h
DIBUTTON_GOLF_LEFT_LINK	EQU	1800C4E4h
DIBUTTON_GOLF_RIGHT_LINK	EQU	1800C4ECh
DIBUTTON_GOLF_FORWARD_LINK	EQU	180144E0h
DIBUTTON_GOLF_BACK_LINK	EQU	180144E8h
DIBUTTON_GOLF_DEVICE	EQU	180044FEh
DIBUTTON_GOLF_PAUSE	EQU	180044FCh
DIVIRTUAL_SPORTS_HOCKEY_OFFENSE	EQU	19000000h
DIAXIS_HOCKEYO_LATERAL	EQU	19008201h
DIAXIS_HOCKEYO_MOVE	EQU	19010202h
DIBUTTON_HOCKEYO_SHOOT	EQU	19000401h
DIBUTTON_HOCKEYO_PASS	EQU	19000402h
DIBUTTON_HOCKEYO_BURST	EQU	19000403h
DIBUTTON_HOCKEYO_SPECIAL	EQU	19000404h
DIBUTTON_HOCKEYO_FAKE	EQU	19000405h
DIBUTTON_HOCKEYO_MENU	EQU	190004FDh
DIHATSWITCH_HOCKEYO_SCROLL	EQU	19004601h
DIBUTTON_HOCKEYO_ZOOM	EQU	19004406h
DIBUTTON_HOCKEYO_STRATEGY	EQU	19004407h
DIBUTTON_HOCKEYO_TIMEOUT	EQU	19004408h
DIBUTTON_HOCKEYO_SUBSTITUTE	EQU	19004409h
DIBUTTON_HOCKEYO_LEFT_LINK	EQU	1900C4E4h
DIBUTTON_HOCKEYO_RIGHT_LINK	EQU	1900C4ECh
DIBUTTON_HOCKEYO_FORWARD_LINK	EQU	190144E0h
DIBUTTON_HOCKEYO_BACK_LINK	EQU	190144E8h
DIBUTTON_HOCKEYO_DEVICE	EQU	190044FEh
DIBUTTON_HOCKEYO_PAUSE	EQU	190044FCh
DIVIRTUAL_SPORTS_HOCKEY_DEFENSE	EQU	1A000000h
DIAXIS_HOCKEYD_LATERAL	EQU	1A008201h
DIAXIS_HOCKEYD_MOVE	EQU	1A010202h
DIBUTTON_HOCKEYD_PLAYER	EQU	1A000401h
DIBUTTON_HOCKEYD_STEAL	EQU	1A000402h
DIBUTTON_HOCKEYD_BURST	EQU	1A000403h
DIBUTTON_HOCKEYD_BLOCK	EQU	1A000404h
DIBUTTON_HOCKEYD_FAKE	EQU	1A000405h
DIBUTTON_HOCKEYD_MENU	EQU	1A0004FDh
DIHATSWITCH_HOCKEYD_SCROLL	EQU	1A004601h
DIBUTTON_HOCKEYD_ZOOM	EQU	1A004406h
DIBUTTON_HOCKEYD_STRATEGY	EQU	1A004407h
DIBUTTON_HOCKEYD_TIMEOUT	EQU	1A004408h
DIBUTTON_HOCKEYD_SUBSTITUTE	EQU	1A004409h
DIBUTTON_HOCKEYD_LEFT_LINK	EQU	1A00C4E4h
DIBUTTON_HOCKEYD_RIGHT_LINK	EQU	1A00C4ECh
DIBUTTON_HOCKEYD_FORWARD_LINK	EQU	1A0144E0h
DIBUTTON_HOCKEYD_BACK_LINK	EQU	1A0144E8h
DIBUTTON_HOCKEYD_DEVICE	EQU	1A0044FEh
DIBUTTON_HOCKEYD_PAUSE	EQU	1A0044FCh
DIVIRTUAL_SPORTS_HOCKEY_GOALIE	EQU	1B000000h
DIAXIS_HOCKEYG_LATERAL	EQU	1B008201h
DIAXIS_HOCKEYG_MOVE	EQU	1B010202h
DIBUTTON_HOCKEYG_PASS	EQU	1B000401h
DIBUTTON_HOCKEYG_POKE	EQU	1B000402h
DIBUTTON_HOCKEYG_STEAL	EQU	1B000403h
DIBUTTON_HOCKEYG_BLOCK	EQU	1B000404h
DIBUTTON_HOCKEYG_MENU	EQU	1B0004FDh
DIHATSWITCH_HOCKEYG_SCROLL	EQU	1B004601h
DIBUTTON_HOCKEYG_ZOOM	EQU	1B004405h
DIBUTTON_HOCKEYG_STRATEGY	EQU	1B004406h
DIBUTTON_HOCKEYG_TIMEOUT	EQU	1B004407h
DIBUTTON_HOCKEYG_SUBSTITUTE	EQU	1B004408h
DIBUTTON_HOCKEYG_LEFT_LINK	EQU	1B00C4E4h
DIBUTTON_HOCKEYG_RIGHT_LINK	EQU	1B00C4ECh
DIBUTTON_HOCKEYG_FORWARD_LINK	EQU	1B0144E0h
DIBUTTON_HOCKEYG_BACK_LINK	EQU	1B0144E8h
DIBUTTON_HOCKEYG_DEVICE	EQU	1B0044FEh
DIBUTTON_HOCKEYG_PAUSE	EQU	1B0044FCh
DIVIRTUAL_SPORTS_BIKING_MOUNTAIN	EQU	1C000000h
DIAXIS_BIKINGM_TURN	EQU	1C008201h
DIAXIS_BIKINGM_PEDAL	EQU	1C010202h
DIBUTTON_BIKINGM_JUMP	EQU	1C000401h
DIBUTTON_BIKINGM_CAMERA	EQU	1C000402h
DIBUTTON_BIKINGM_SPECIAL1	EQU	1C000403h
DIBUTTON_BIKINGM_SELECT	EQU	1C000404h
DIBUTTON_BIKINGM_SPECIAL2	EQU	1C000405h
DIBUTTON_BIKINGM_MENU	EQU	1C0004FDh
DIHATSWITCH_BIKINGM_SCROLL	EQU	1C004601h
DIBUTTON_BIKINGM_ZOOM	EQU	1C004406h
DIAXIS_BIKINGM_BRAKE	EQU	1C044203h
DIBUTTON_BIKINGM_LEFT_LINK	EQU	1C00C4E4h
DIBUTTON_BIKINGM_RIGHT_LINK	EQU	1C00C4ECh
DIBUTTON_BIKINGM_FASTER_LINK	EQU	1C0144E0h
DIBUTTON_BIKINGM_SLOWER_LINK	EQU	1C0144E8h
DIBUTTON_BIKINGM_BRAKE_BUTTON_LINK	EQU	1C0444E8h
DIBUTTON_BIKINGM_DEVICE	EQU	1C0044FEh
DIBUTTON_BIKINGM_PAUSE	EQU	1C0044FCh
DIVIRTUAL_SPORTS_SKIING	EQU	1D000000h
DIAXIS_SKIING_TURN	EQU	1D008201h
DIAXIS_SKIING_SPEED	EQU	1D010202h
DIBUTTON_SKIING_JUMP	EQU	1D000401h
DIBUTTON_SKIING_CROUCH	EQU	1D000402h
DIBUTTON_SKIING_CAMERA	EQU	1D000403h
DIBUTTON_SKIING_SPECIAL1	EQU	1D000404h
DIBUTTON_SKIING_SELECT	EQU	1D000405h
DIBUTTON_SKIING_SPECIAL2	EQU	1D000406h
DIBUTTON_SKIING_MENU	EQU	1D0004FDh
DIHATSWITCH_SKIING_GLANCE	EQU	1D004601h
DIBUTTON_SKIING_ZOOM	EQU	1D004407h
DIBUTTON_SKIING_LEFT_LINK	EQU	1D00C4E4h
DIBUTTON_SKIING_RIGHT_LINK	EQU	1D00C4ECh
DIBUTTON_SKIING_FASTER_LINK	EQU	1D0144E0h
DIBUTTON_SKIING_SLOWER_LINK	EQU	1D0144E8h
DIBUTTON_SKIING_DEVICE	EQU	1D0044FEh
DIBUTTON_SKIING_PAUSE	EQU	1D0044FCh
DIVIRTUAL_SPORTS_SOCCER_OFFENSE	EQU	1E000000h
DIAXIS_SOCCERO_LATERAL	EQU	1E008201h
DIAXIS_SOCCERO_MOVE	EQU	1E010202h
DIAXIS_SOCCERO_BEND	EQU	1E018203h
DIBUTTON_SOCCERO_SHOOT	EQU	1E000401h
DIBUTTON_SOCCERO_PASS	EQU	1E000402h
DIBUTTON_SOCCERO_FAKE	EQU	1E000403h
DIBUTTON_SOCCERO_PLAYER	EQU	1E000404h
DIBUTTON_SOCCERO_SPECIAL1	EQU	1E000405h
DIBUTTON_SOCCERO_SELECT	EQU	1E000406h
DIBUTTON_SOCCERO_MENU	EQU	1E0004FDh
DIHATSWITCH_SOCCERO_GLANCE	EQU	1E004601h
DIBUTTON_SOCCERO_SUBSTITUTE	EQU	1E004407h
DIBUTTON_SOCCERO_SHOOTLOW	EQU	1E004408h
DIBUTTON_SOCCERO_SHOOTHIGH	EQU	1E004409h
DIBUTTON_SOCCERO_PASSTHRU	EQU	1E00440Ah
DIBUTTON_SOCCERO_SPRINT	EQU	1E00440Bh
DIBUTTON_SOCCERO_CONTROL	EQU	1E00440Ch
DIBUTTON_SOCCERO_HEAD	EQU	1E00440Dh
DIBUTTON_SOCCERO_LEFT_LINK	EQU	1E00C4E4h
DIBUTTON_SOCCERO_RIGHT_LINK	EQU	1E00C4ECh
DIBUTTON_SOCCERO_FORWARD_LINK	EQU	1E0144E0h
DIBUTTON_SOCCERO_BACK_LINK	EQU	1E0144E8h
DIBUTTON_SOCCERO_DEVICE	EQU	1E0044FEh
DIBUTTON_SOCCERO_PAUSE	EQU	1E0044FCh
DIVIRTUAL_SPORTS_SOCCER_DEFENSE	EQU	1F000000h
DIAXIS_SOCCERD_LATERAL	EQU	1F008201h
DIAXIS_SOCCERD_MOVE	EQU	1F010202h
DIBUTTON_SOCCERD_BLOCK	EQU	1F000401h
DIBUTTON_SOCCERD_STEAL	EQU	1F000402h
DIBUTTON_SOCCERD_FAKE	EQU	1F000403h
DIBUTTON_SOCCERD_PLAYER	EQU	1F000404h
DIBUTTON_SOCCERD_SPECIAL	EQU	1F000405h
DIBUTTON_SOCCERD_SELECT	EQU	1F000406h
DIBUTTON_SOCCERD_SLIDE	EQU	1F000407h
DIBUTTON_SOCCERD_MENU	EQU	1F0004FDh
DIHATSWITCH_SOCCERD_GLANCE	EQU	1F004601h
DIBUTTON_SOCCERD_FOUL	EQU	1F004408h
DIBUTTON_SOCCERD_HEAD	EQU	1F004409h
DIBUTTON_SOCCERD_CLEAR	EQU	1F00440Ah
DIBUTTON_SOCCERD_GOALIECHARGE	EQU	1F00440Bh
DIBUTTON_SOCCERD_SUBSTITUTE	EQU	1F00440Ch
DIBUTTON_SOCCERD_LEFT_LINK	EQU	1F00C4E4h
DIBUTTON_SOCCERD_RIGHT_LINK	EQU	1F00C4ECh
DIBUTTON_SOCCERD_FORWARD_LINK	EQU	1F0144E0h
DIBUTTON_SOCCERD_BACK_LINK	EQU	1F0144E8h
DIBUTTON_SOCCERD_DEVICE	EQU	1F0044FEh
DIBUTTON_SOCCERD_PAUSE	EQU	1F0044FCh
DIVIRTUAL_SPORTS_RACQUET	EQU	20000000h
DIAXIS_RACQUET_LATERAL	EQU	20008201h
DIAXIS_RACQUET_MOVE	EQU	20010202h
DIBUTTON_RACQUET_SWING	EQU	20000401h
DIBUTTON_RACQUET_BACKSWING	EQU	20000402h
DIBUTTON_RACQUET_SMASH	EQU	20000403h
DIBUTTON_RACQUET_SPECIAL	EQU	20000404h
DIBUTTON_RACQUET_SELECT	EQU	20000405h
DIBUTTON_RACQUET_MENU	EQU	200004FDh
DIHATSWITCH_RACQUET_GLANCE	EQU	20004601h
DIBUTTON_RACQUET_TIMEOUT	EQU	20004406h
DIBUTTON_RACQUET_SUBSTITUTE	EQU	20004407h
DIBUTTON_RACQUET_LEFT_LINK	EQU	2000C4E4h
DIBUTTON_RACQUET_RIGHT_LINK	EQU	2000C4ECh
DIBUTTON_RACQUET_FORWARD_LINK	EQU	200144E0h
DIBUTTON_RACQUET_BACK_LINK	EQU	200144E8h
DIBUTTON_RACQUET_DEVICE	EQU	200044FEh
DIBUTTON_RACQUET_PAUSE	EQU	200044FCh
DIVIRTUAL_ARCADE_SIDE2SIDE	EQU	21000000h
DIAXIS_ARCADES_LATERAL	EQU	21008201h
DIAXIS_ARCADES_MOVE	EQU	21010202h
DIBUTTON_ARCADES_THROW	EQU	21000401h
DIBUTTON_ARCADES_CARRY	EQU	21000402h
DIBUTTON_ARCADES_ATTACK	EQU	21000403h
DIBUTTON_ARCADES_SPECIAL	EQU	21000404h
DIBUTTON_ARCADES_SELECT	EQU	21000405h
DIBUTTON_ARCADES_MENU	EQU	210004FDh
DIHATSWITCH_ARCADES_VIEW	EQU	21004601h
DIBUTTON_ARCADES_LEFT_LINK	EQU	2100C4E4h
DIBUTTON_ARCADES_RIGHT_LINK	EQU	2100C4ECh
DIBUTTON_ARCADES_FORWARD_LINK	EQU	210144E0h
DIBUTTON_ARCADES_BACK_LINK	EQU	210144E8h
DIBUTTON_ARCADES_VIEW_UP_LINK	EQU	2107C4E0h
DIBUTTON_ARCADES_VIEW_DOWN_LINK	EQU	2107C4E8h
DIBUTTON_ARCADES_VIEW_LEFT_LINK	EQU	2107C4E4h
DIBUTTON_ARCADES_VIEW_RIGHT_LINK	EQU	2107C4ECh
DIBUTTON_ARCADES_DEVICE	EQU	210044FEh
DIBUTTON_ARCADES_PAUSE	EQU	210044FCh
DIVIRTUAL_ARCADE_PLATFORM	EQU	22000000h
DIAXIS_ARCADEP_LATERAL	EQU	22008201h
DIAXIS_ARCADEP_MOVE	EQU	22010202h
DIBUTTON_ARCADEP_JUMP	EQU	22000401h
DIBUTTON_ARCADEP_FIRE	EQU	22000402h
DIBUTTON_ARCADEP_CROUCH	EQU	22000403h
DIBUTTON_ARCADEP_SPECIAL	EQU	22000404h
DIBUTTON_ARCADEP_SELECT	EQU	22000405h
DIBUTTON_ARCADEP_MENU	EQU	220004FDh
DIHATSWITCH_ARCADEP_VIEW	EQU	22004601h
DIBUTTON_ARCADEP_FIRESECONDARY	EQU	22004406h
DIBUTTON_ARCADEP_LEFT_LINK	EQU	2200C4E4h
DIBUTTON_ARCADEP_RIGHT_LINK	EQU	2200C4ECh
DIBUTTON_ARCADEP_FORWARD_LINK	EQU	220144E0h
DIBUTTON_ARCADEP_BACK_LINK	EQU	220144E8h
DIBUTTON_ARCADEP_VIEW_UP_LINK	EQU	2207C4E0h
DIBUTTON_ARCADEP_VIEW_DOWN_LINK	EQU	2207C4E8h
DIBUTTON_ARCADEP_VIEW_LEFT_LINK	EQU	2207C4E4h
DIBUTTON_ARCADEP_VIEW_RIGHT_LINK	EQU	2207C4ECh
DIBUTTON_ARCADEP_DEVICE	EQU	220044FEh
DIBUTTON_ARCADEP_PAUSE	EQU	220044FCh
DIVIRTUAL_CAD_2DCONTROL	EQU	23000000h
DIAXIS_2DCONTROL_LATERAL	EQU	23008201h
DIAXIS_2DCONTROL_MOVE	EQU	23010202h
DIAXIS_2DCONTROL_INOUT	EQU	23018203h
DIBUTTON_2DCONTROL_SELECT	EQU	23000401h
DIBUTTON_2DCONTROL_SPECIAL1	EQU	23000402h
DIBUTTON_2DCONTROL_SPECIAL	EQU	23000403h
DIBUTTON_2DCONTROL_SPECIAL2	EQU	23000404h
DIBUTTON_2DCONTROL_MENU	EQU	230004FDh
DIHATSWITCH_2DCONTROL_HATSWITCH	EQU	23004601h
DIAXIS_2DCONTROL_ROTATEZ	EQU	23024204h
DIBUTTON_2DCONTROL_DISPLAY	EQU	23004405h
DIBUTTON_2DCONTROL_DEVICE	EQU	230044FEh
DIBUTTON_2DCONTROL_PAUSE	EQU	230044FCh
DIVIRTUAL_CAD_3DCONTROL	EQU	24000000h
DIAXIS_3DCONTROL_LATERAL	EQU	24008201h
DIAXIS_3DCONTROL_MOVE	EQU	24010202h
DIAXIS_3DCONTROL_INOUT	EQU	24018203h
DIBUTTON_3DCONTROL_SELECT	EQU	24000401h
DIBUTTON_3DCONTROL_SPECIAL1	EQU	24000402h
DIBUTTON_3DCONTROL_SPECIAL	EQU	24000403h
DIBUTTON_3DCONTROL_SPECIAL2	EQU	24000404h
DIBUTTON_3DCONTROL_MENU	EQU	240004FDh
DIHATSWITCH_3DCONTROL_HATSWITCH	EQU	24004601h
DIAXIS_3DCONTROL_ROTATEX	EQU	24034204h
DIAXIS_3DCONTROL_ROTATEY	EQU	2402C205h
DIAXIS_3DCONTROL_ROTATEZ	EQU	24024206h
DIBUTTON_3DCONTROL_DISPLAY	EQU	24004405h
DIBUTTON_3DCONTROL_DEVICE	EQU	240044FEh
DIBUTTON_3DCONTROL_PAUSE	EQU	240044FCh
DIVIRTUAL_CAD_FLYBY	EQU	25000000h
DIAXIS_CADF_LATERAL	EQU	25008201h
DIAXIS_CADF_MOVE	EQU	25010202h
DIAXIS_CADF_INOUT	EQU	25018203h
DIBUTTON_CADF_SELECT	EQU	25000401h
DIBUTTON_CADF_SPECIAL1	EQU	25000402h
DIBUTTON_CADF_SPECIAL	EQU	25000403h
DIBUTTON_CADF_SPECIAL2	EQU	25000404h
DIBUTTON_CADF_MENU	EQU	250004FDh
DIHATSWITCH_CADF_HATSWITCH	EQU	25004601h
DIAXIS_CADF_ROTATEX	EQU	25034204h
DIAXIS_CADF_ROTATEY	EQU	2502C205h
DIAXIS_CADF_ROTATEZ	EQU	25024206h
DIBUTTON_CADF_DISPLAY	EQU	25004405h
DIBUTTON_CADF_DEVICE	EQU	250044FEh
DIBUTTON_CADF_PAUSE	EQU	250044FCh
DIVIRTUAL_CAD_MODEL	EQU	26000000h
DIAXIS_CADM_LATERAL	EQU	26008201h
DIAXIS_CADM_MOVE	EQU	26010202h
DIAXIS_CADM_INOUT	EQU	26018203h
DIBUTTON_CADM_SELECT	EQU	26000401h
DIBUTTON_CADM_SPECIAL1	EQU	26000402h
DIBUTTON_CADM_SPECIAL	EQU	26000403h
DIBUTTON_CADM_SPECIAL2	EQU	26000404h
DIBUTTON_CADM_MENU	EQU	260004FDh
DIHATSWITCH_CADM_HATSWITCH	EQU	26004601h
DIAXIS_CADM_ROTATEX	EQU	26034204h
DIAXIS_CADM_ROTATEY	EQU	2602C205h
DIAXIS_CADM_ROTATEZ	EQU	26024206h
DIBUTTON_CADM_DISPLAY	EQU	26004405h
DIBUTTON_CADM_DEVICE	EQU	260044FEh
DIBUTTON_CADM_PAUSE	EQU	260044FCh
DIVIRTUAL_REMOTE_CONTROL	EQU	27000000h
DIAXIS_REMOTE_SLIDER	EQU	27050201h
DIBUTTON_REMOTE_MUTE	EQU	27000401h
DIBUTTON_REMOTE_SELECT	EQU	27000402h
DIBUTTON_REMOTE_PLAY	EQU	27002403h
DIBUTTON_REMOTE_CUE	EQU	27002404h
DIBUTTON_REMOTE_REVIEW	EQU	27002405h
DIBUTTON_REMOTE_CHANGE	EQU	27002406h
DIBUTTON_REMOTE_RECORD	EQU	27002407h
DIBUTTON_REMOTE_MENU	EQU	270004FDh
DIAXIS_REMOTE_SLIDER2	EQU	27054202h
DIBUTTON_REMOTE_TV	EQU	27005C08h
DIBUTTON_REMOTE_CABLE	EQU	27005C09h
DIBUTTON_REMOTE_CD	EQU	27005C0Ah
DIBUTTON_REMOTE_VCR	EQU	27005C0Bh
DIBUTTON_REMOTE_TUNER	EQU	27005C0Ch
DIBUTTON_REMOTE_DVD	EQU	27005C0Dh
DIBUTTON_REMOTE_ADJUST	EQU	27005C0Eh
DIBUTTON_REMOTE_DIGIT0	EQU	2700540Fh
DIBUTTON_REMOTE_DIGIT1	EQU	27005410h
DIBUTTON_REMOTE_DIGIT2	EQU	27005411h
DIBUTTON_REMOTE_DIGIT3	EQU	27005412h
DIBUTTON_REMOTE_DIGIT4	EQU	27005413h
DIBUTTON_REMOTE_DIGIT5	EQU	27005414h
DIBUTTON_REMOTE_DIGIT6	EQU	27005415h
DIBUTTON_REMOTE_DIGIT7	EQU	27005416h
DIBUTTON_REMOTE_DIGIT8	EQU	27005417h
DIBUTTON_REMOTE_DIGIT9	EQU	27005418h
DIBUTTON_REMOTE_DEVICE	EQU	270044FEh
DIBUTTON_REMOTE_PAUSE	EQU	270044FCh
DIVIRTUAL_BROWSER_CONTROL	EQU	28000000h
DIAXIS_BROWSER_LATERAL	EQU	28008201h
DIAXIS_BROWSER_MOVE	EQU	28010202h
DIBUTTON_BROWSER_SELECT	EQU	28000401h
DIAXIS_BROWSER_VIEW	EQU	28018203h
DIBUTTON_BROWSER_REFRESH	EQU	28000402h
DIBUTTON_BROWSER_MENU	EQU	280004FDh
DIBUTTON_BROWSER_SEARCH	EQU	28004403h
DIBUTTON_BROWSER_STOP	EQU	28004404h
DIBUTTON_BROWSER_HOME	EQU	28004405h
DIBUTTON_BROWSER_FAVORITES	EQU	28004406h
DIBUTTON_BROWSER_NEXT	EQU	28004407h
DIBUTTON_BROWSER_PREVIOUS	EQU	28004408h
DIBUTTON_BROWSER_HISTORY	EQU	28004409h
DIBUTTON_BROWSER_PRINT	EQU	2800440Ah
DIBUTTON_BROWSER_DEVICE	EQU	280044FEh
DIBUTTON_BROWSER_PAUSE	EQU	280044FCh
DIVIRTUAL_DRIVING_MECHA	EQU	29000000h
DIAXIS_MECHA_STEER	EQU	29008201h
DIAXIS_MECHA_TORSO	EQU	29010202h
DIAXIS_MECHA_ROTATE	EQU	29020203h
DIAXIS_MECHA_THROTTLE	EQU	29038204h
DIBUTTON_MECHA_FIRE	EQU	29000401h
DIBUTTON_MECHA_WEAPONS	EQU	29000402h
DIBUTTON_MECHA_TARGET	EQU	29000403h
DIBUTTON_MECHA_REVERSE	EQU	29000404h
DIBUTTON_MECHA_ZOOM	EQU	29000405h
DIBUTTON_MECHA_JUMP	EQU	29000406h
DIBUTTON_MECHA_MENU	EQU	290004FDh
DIBUTTON_MECHA_CENTER	EQU	29004407h
DIHATSWITCH_MECHA_GLANCE	EQU	29004601h
DIBUTTON_MECHA_VIEW	EQU	29004408h
DIBUTTON_MECHA_FIRESECONDARY	EQU	29004409h
DIBUTTON_MECHA_LEFT_LINK	EQU	2900C4E4h
DIBUTTON_MECHA_RIGHT_LINK	EQU	2900C4ECh
DIBUTTON_MECHA_FORWARD_LINK	EQU	290144E0h
DIBUTTON_MECHA_BACK_LINK	EQU	290144E8h
DIBUTTON_MECHA_ROTATE_LEFT_LINK	EQU	290244E4h
DIBUTTON_MECHA_ROTATE_RIGHT_LINK	EQU	290244ECh
DIBUTTON_MECHA_FASTER_LINK	EQU	2903C4E0h
DIBUTTON_MECHA_SLOWER_LINK	EQU	2903C4E8h
DIBUTTON_MECHA_DEVICE	EQU	290044FEh
DIBUTTON_MECHA_PAUSE	EQU	290044FCh
DIAXIS_ANY_X_1	EQU	0FF00C201h
DIAXIS_ANY_X_2	EQU	0FF00C202h
DIAXIS_ANY_Y_1	EQU	0FF014201h
DIAXIS_ANY_Y_2	EQU	0FF014202h
DIAXIS_ANY_Z_1	EQU	0FF01C201h
DIAXIS_ANY_Z_2	EQU	0FF01C202h
DIAXIS_ANY_R_1	EQU	0FF024201h
DIAXIS_ANY_R_2	EQU	0FF024202h
DIAXIS_ANY_U_1	EQU	0FF02C201h
DIAXIS_ANY_U_2	EQU	0FF02C202h
DIAXIS_ANY_V_1	EQU	0FF034201h
DIAXIS_ANY_V_2	EQU	0FF034202h
DIAXIS_ANY_A_1	EQU	0FF03C201h
DIAXIS_ANY_A_2	EQU	0FF03C202h
DIAXIS_ANY_B_1	EQU	0FF044201h
DIAXIS_ANY_B_2	EQU	0FF044202h
DIAXIS_ANY_C_1	EQU	0FF04C201h
DIAXIS_ANY_C_2	EQU	0FF04C202h
DIAXIS_ANY_S_1	EQU	0FF054201h
DIAXIS_ANY_S_2	EQU	0FF054202h
DIAXIS_ANY_1	EQU	0FF004201h
DIAXIS_ANY_2	EQU	0FF004202h
DIAXIS_ANY_3	EQU	0FF004203h
DIAXIS_ANY_4	EQU	0FF004204h
DIPOV_ANY_1	EQU	0FF004601h
DIPOV_ANY_2	EQU	0FF004602h
DIPOV_ANY_3	EQU	0FF004603h
DIPOV_ANY_4	EQU	0FF004604h
DIBUTTON_ANY macro instance
	exitm <( 0FF004400h  or  instance ) >
	endm
ifdef __cplusplus
;}
endif 
endif 
ifdef _INC_MMSYSTEM
ifndef MMNOJOY
ifndef __VJOYDX_INCLUDED__
__VJOYDX_INCLUDED__	EQU	<>
ifdef __cplusplus
;extern "C"
;{
endif 
JOY_PASSDRIVERDATA	EQU	10000000h
proto_joyConfigChanged typedef proto stdcall  :DWORD
externdef stdcall _imp__joyConfigChanged@4: ptr proto_joyConfigChanged
joyConfigChanged equ <_imp__joyConfigChanged@4>
ifndef DIJ_RINGZERO
ShowJoyCPL proto stdcall  :HWND
proto_LPFNSHOWJOYCPL typedef proto stdcall :HWND
LPFNSHOWJOYCPL typedef ptr proto_LPFNSHOWJOYCPL
endif 
JOY_HWS_ISHEADTRACKER	EQU	02000000h
JOY_HWS_ISGAMEPORTDRIVER	EQU	04000000h
JOY_HWS_ISANALOGPORTDRIVER	EQU	08000000h
JOY_HWS_AUTOLOAD	EQU	10000000h
JOY_HWS_NODEVNODE	EQU	20000000h
JOY_HWS_ISGAMEPORTBUS	EQU	80000000h
JOY_HWS_GAMEPORTBUSBUSY	EQU	00000001h
JOY_US_VOLATILE	EQU	00000008h
ifdef __cplusplus
;}
endif 
endif 
endif 
endif 
ifndef DIJ_RINGZERO
ifdef _INC_MMDDK
ifndef MMNOJOYDEV
ifndef __VJOYDXD_INCLUDED__
__VJOYDXD_INCLUDED__	EQU	<>
JOY_OEMPOLL_PASSDRIVERDATA	EQU	7
endif 
endif 
endif 
endif 

;--- errors: 0
;--- end of file ---
